Press "Enter" to skip to content

月与灯依旧 Posts

Open-Wrt设置PPPoE+永久修改网卡MAC地址

Open-Wrt永久修改Mac地址的过程,这里记录一下。

1,打开SSH远程管理
点击”System”-“Administration”,找到下面的”SSH Access”项(Dropbear就是Open-Wrt使用的SSH-Server程序),将下面对应的interface打开即可。这里我打开的是lan口。注意勾选下面的”Password authentication”和”Allow root logins with password”,然后”Save & Apply”;

2,设置PPPoE(宽带帐号)
之所以要先设置好网络,是因为如果先通过SSH修改网卡配置文件,然后再在Web页面设置PPPoE的话,会把先前网卡配置文件覆盖掉。所以需要先设置PPPoE。
点击”Network”-“Interfaces”,在下面找到Wan口,点击右边的”Edit”,将”Protocol”设置为”PPPoE”,下方填入帐号密码。如果知道MTU值,在”Advanced Settings”里将”Override MTU”改为想要的MTU值。其它的基本不用动,点击”Save & Apply”。

简单优化一下:
点击”Network”-“Firewall”,在下面的”Zones”里找到”Lan=>Wan”这一条,勾选右边的”MSS clamping”。该设置能普遍解决全国各地的电信运营商MTU值设置不当,导致手机WIFI连接时,QQ、微信等发不出去图片的问题。

3,永久修改网卡MAC地址
通过SSH连接上去,作如下修改

vi /etc/config/network
config interface 'wan'
        option ifname 'eth1'
        option _orig_ifname 'eth1'
        option _orig_bridge 'false'
        option proto 'pppoe'
        option username '宽带帐号'
        option password '宽带密码'
        option mtu '1488'
        option 'macaddr' '08:10:76:23:8B:19'  #添加这一行

vi /etc/rc.local  #添加如下几行
ifconfig eth1 down
ifconfig eth1 hw ether 08:10:76:23:8B:19
ifconfig eth1 up
exit 0

提示一下,如果要用WinSCP向Open-Wrt传输文件,文件协议需要选择SCP(不要选择默认的SFTP)。

Leave a Comment

解决CentOS6系统X11提示Fatal server error:no screens found

今天安装完CentOS-6.6-x86_64-minimal以后,想给它装个桌面,于是运行了yum groupinstall “Desktop”,按理说,应该是桌面环境应该可以正常运行了。但当运行start命令时,却遇到了如下错误:

Fatal server error: 
.......  
no screens found 
(EE)  
Please consult the CentOS support  
 at http://wiki.centos.org/Documentation 
 for help.  
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. 
(EE)  
Server terminated with error (1). Closing log file.

解决办法:

$ yum groupinstall -y 'X Window System'
$ rm -rf /etc/X11/xorg.conf
$ Xorg -configure              #会提示生成了新的配置文件xorg.conf.new
$ cp ~/xorg.conf.new /etc/X11/xorg.conf
$ startx
Leave a Comment

配置DD-WRT的PPTP客户端

在DD-WRT上配置PPTP客户端的过程,记录一下,别问我为什么要干这个,我是为了跳过长城。该文章在小日本寄来的FC2免费路由器(对应型号:Buffalo WHR-G301N)上测试成功,刷的是2014.12.22号的DD-WRT版本

建议将DD-WRT升级至最新版,本文基于DD-WRT v24-sp2 (12/22/14) std版本配置成功。先前找个一个2013.11.20号版本的DD-WRT,结果总是配置失败,于是将DD-WRT升级至最新版,竟然一次成功。

1,将DDW-RT的防火墙和DMZ功能关闭
点击”Security”-“Firewall”,将”SPI Firewall”设置为”Disable”;
点击”NAT/QoS”-“DMZ”,将”use DMZ”设置为”Disable”;
点击”Services”-“Services”,将”SSHd”、”SSH TCP Forwarding”、”Password Login”全都设置为”Enable”

2,配置PPTP客户端
点击”Services”-“VPN”,找到”PPTP Client”,对其进行如下设置:
配置DD-WRT的PPTP客户端
其中,”MPPE Encryption”需要填写成”mppe required,no40,no56,stateless”,然后点击”Save”

3,配置开机自启动
点击”Administration”-“Commands”,将如下代码帖至”Commands”框内:

sleep 90
OLDGW=$(nvram get wan_gateway)
VPNSRV=$(nvram get pptpd_client_srvip)
VPNSRVSUB=$(nvram get pptpd_client_srvsub)
PPTPDEV=$(route -n | grep ^${VPNSRVSUB%.[0-9]*} | awk '{print $NF}' | head -n 1)
VPNGW=$(ifconfig $PPTPDEV | grep -Eo "P-t-P:([0-9.]+)" | cut -d: -f2)
route add -host $VPNSRV gw $OLDGW
route del default gw $OLDGW
route add default gw $VPNGW
ip route add 8.8.8.8 via $VPNGW
ip route add 8.8.4.4 via $VPNGW

然后点击下方的”Save Startup”

4,检测设置成功与否
在上一步的”Commands”页面,在下方的”Commands”框内输入reboot,然后点击下方的”Run Commands”,此时路由器会重启。
使用SSH连接上路由器,输入ps | grep pptp命令并回车,如果能看到如下进程,说明VPN已配置成功:
配置DD-WRT的PPTP客户端
有的DD-WRT版本不太稳定,SSH如果连接不上,可以将本地的SSH客户端(例如Xshell等)的登陆协议改为Telnet就可以登陆了。

补充说明:
1,第一次设置完成后,我并没有重启,导致笔记本地连接无线的时候提示连接到网络的时间超过了正常的时间,手机上也显示“正在分配IP地址”,但一直无法连接上。于是我找到”Setup”-“Basic Setup”,将”Use DNSMasq for DHCP”、”Use DNSMasq for DNS”全部取消(不启用),重启以后发现笔记本、手机均可以正常连接了。

2,经测试,在设置PPTP客户端时,MTU和MRU无须作特殊修改,保持默认的1450依然可以正常连接。

===================================
2015.02.04补充:
又换了一个路由器,刷了很多个版本的DD-WRT,用此方法,均不能成功连接。由此可见,DD-WRT非常不稳定,不建议新手使用。新手们还是去折腾Open-Wrt吧。

解决某些DD-WRT版本PPTP客户端拔号不正常的办法
在WEB界面,打开JFFS支持(详细介绍可以参考这篇文章):
点击”Administration”-“Management”-“JFFS2 Support”,勾选下方的”JFFS2″,不要勾选“Clean JFFS2″。然后”Save”,并且”Apply Settings”(即一定要重启,否则路由器上的/jffs分区不可写);
然后再参考这篇文章

补上一个DD-WRT永久修改MAC的方法:

nvram set wan_hwaddr=08:10:76:23:8B:1A
nvram set lan_hwaddr=08:10:76:23:8B:1C
nvram set et0macaddr=08:10:76:23:8B:1C
nvram set et0macaddr_safe=08:10:76:23:8B:1C
nvram commit   #等待10秒再运行下一条
reboot
1 Comment

Linux下的网络监控工具

Linux下的网络流量监控工具,这里推荐两个:ifstat和iftop。其中,ifstat适合查看所有网卡的总吞吐量,而iftop适合查看某一块网卡的连接流量,比如想看看某个IP占用了多少带宽,iftop再适合不过了。

一,ifstat介绍及用法
安装

$ yum install ifstat             #适用于centos/redhat,需先安装rpmforge源
$ sudo apt-get install ifstat    #适用于debian/ubuntu

需要注意的是,CentOS/Redhat上面安装ifstat需要先安装rpmforge源,安装方法请参考这篇文章

用法

$ ifstat -a
        lo                 eth0                eth1                eth2
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.80      0.80    228.51    253.87      0.00      0.00
    0.00      0.00      0.15      1.66    195.24    290.59      0.00      0.00
    0.00      0.00      0.90      0.96    188.68    265.57      0.00      0.00

二,iftop介绍及用法
安装

$ yum install iftop             #适用于centos/redhat
$ sudo apt-get install iftop    #适用于debian/ubuntu
Leave a Comment

索尼任意型号的手机制作ftf格式的固件+强刷教程

一,准备环境
1,安装JRE8.0(Java Runtime Enviroment 8.0,下载地址);
2,安装FlashTool(官网百度云下载地址),这里我们默认安装到C:\Flashtool目录;
3,安装C:\Flashtool\drivers\Flashtool-drivers.exe,安装界面需要勾选“Flashmode Drivers”、“Fastboot Drivers”、“Xperia 你的手机型号 driver”这三样;

二,下载固件
XDA上某大神制作了专门的索尼固件下载工具,名为Xperia Firmware Downloader & Checker,可以下载索尼全系列产品的固件。截止本文发出时,最新的版本是V3.1。

1,下载Xperia Firmware Downloader & Checker V3.1版(百度云下载地址XDA下载地址
2,解压,运行其中的XperiFirm.exe,界面如下图
索尼任意型号的手机制作ftf格式的固件+强刷教程

1 Comment

解决Ubuntu提示500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Ubuntu 12.04 64bit系统下安装的vsftpd,在登陆时提示500 OOPS: vsftpd: refusing to run with writable root inside chroot()。根本原因在于,从vsftpd_2.3.5版开始,取消了根目录的可写权限。因此,网上的普遍解决方案是以下两种:

方案一
$ chmod a-w /vaf/ftp

方案二
$ vim /etc/vsftpd.conf add the following
  allow_writeable_chroot=YES

看起来,貌似第二种方式是更完美,但当我把allow_writeable_chroot=YES配置项加入的时候,重启vsftpd服务的时候发现不能正常工作了(21端口无程序在监听),于是上网查找解决方案,发现说法五花八门的,有人说配置项是allow_writable_chroot(少了个e),还有说配置项是allow_writable_root(少了ch)等的,经过我测试,发现全都不行。后来总算找到一个可行的方法。

Ubuntu 12.04 64bit的完整解决方案

$ apt-get install python-software-properties
$ sudo add-apt-repository ppa:thefrontiergroup/vsftpd
$ sudo apt-get update
$ sudo apt-get install vsftpd
$ vim /etc/vsftpd.conf and add the following
  chroot_local_user=YES
  allow_writeable_chroot=YES
$ sudo service vsftpd restart
5 Comments

CentOS 6配置SFTP

现在的客户还真聪明,知道FTP不安全,非要配置个SFTP,于是便有了本文。其实俺特别想说,身在天朝,还谈啥安全?

由于SFTP是SSH的一部分(与传统的FTP没有任何关系),因此,配置SFTP不需要传统的FTP服务器软件。仅需要OpenSSH服务器即可。

$ yum install openssh-server openssl

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ vim +132 /etc/ssh/sshd_config 
注释掉下面这行
Subsystem      sftp    /usr/libexec/openssh/sftp-server

添加如下几行
Subsystem       sftp    internal-sftp
Match Group sftp
        ChrootDirectory /data/sftp/%u
        ForceCommand    internal-sftp
        AllowTcpForwarding no
        X11Forwarding no

解释一下每一行的意思

Subsystem       sftp    internal-sftp  
这行指定使用sftp服务使用系统自带的internal-sftp

Match Group sftp  
匹配sftp组的用户,如果有多个组用逗号分割
也可以使用“Match User mysftp”匹配用户,多个用户之间也是用逗号分割

ChrootDirectory /data/ftp/%u  
用chroot将用户的根目录指定到/data/ftp/%u,%u代表用户名,%h表示用户根目录
另一种写法: ChrootDirectory %h
chroot可以参考:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/

ForceCommand    internal-sftp  
指定sftp命令

AllowTcpForwarding no  
X11Forwarding no  
禁止用户使用端口转发

建立用户和组

$ mkdir -p /data/sftp/
$ groupadd sftp
$ useradd -m -d /data/sftp/user1 -g sftp -s /sbin/nologin user1
#通过上面这条命令建立的用户,其家目录权限是700,需要改成755才可以正常登陆
$ chmod -R 755 /data/sftp/
$ chown root:sftp /data/sftp/
$ chown root:sftp /data/sftp/user1    #重要

错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容

目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限755)

因为用了chroot,所以/data/sftp/user1属主一定要是root,并且所属组不能有写入权限,如果上传需要写入在/data/sftp/user1下建立可写属主的文件夹供上传使用。

$ mkdir /data/sftp/user1/upload
$ chown -R user1:sftp /data/sftp/user1/upload

===========================================
2015.01.12补充
在Ubuntu 12.04 64bit系统部按如上方法部署好了SFTP,发现无法登陆,后来在/var/log/auth.log中发现了日志:fatal: bad ownership or modes for chroot directory component “/ftpdata/ftp/”;
于是查看了一下/ftpdata/ftp/的权限,发现该目录的属主是ftp。于是立即将属主修改为root,再次登陆就没问题了
请注意,在Ubuntu系统下,“Match Group sftp”及以后的配置项要写在“UsePAM yes”之后,否则同样无法登陆

===========================================
2015.02.03补充
在Ubuntu 12.04 64bit系统部按如上方法部署好了SFTP,发现无法登陆,FileZilla提示:Received unexpected end-of-file from SFTP server;执行/etc/init.d/ssh restart也不行;
经过百度,发现执行一下initctl restart ssh就OK了

1 Comment