无线中继
科学上网
。- 为什么要做无线中继?因为两个场景:第一个是在我司,WIFI上网同一账户只能连接两个设备,现在两个设备哪里够?第二个场景是在宾馆,我希望就像在家里一样,所有设备都是连上路由器就可以免设置科学上网,这就需要对宾馆原来的WIFI进行处理
- 为什么要随时科学上网?我只能说,为了知识和真相
RASPBIAN JESSIE
1.设置IP
cmdline.txt
文件,打开之后,在最后的位置追加一个IP如下:dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ip=192.168.3.1
192.168.3.100
,掩码设置为255.255.255.0
即可连接树莓派了2.更改磁盘大小和LOCALE
sudo raspi-config
,可以打开树莓派设置窗口:
en_US.UTF-8
以及zh_CN.UTF-8
,默认语言使用赵家语言(选择时,使用空格键来切换选中/未选)。3.更改WIFI国别
/etc/wpa_supplicant/wpa_supplicant.conf
,更改country
为CN
4.安装第一块WIFI适配器
5.配置基于WPA-EAP的WIFI认证
/etc/wpa_supplicant/wpa_supplicant.conf
增加如下段落即可network={ ssid="ssid" key_mgmt=WPA-EAP eap=PEAP identity="id" password="password" #ca_cert="/etc/cert/ca.pem" #phase1="peaplabel=1" phase2="auth=MSCHAPV2" priority=10 }
ssid
identity
和password
为你所在环境的配置。配置文件中可以有多个network配置,系统会根据搜索到的ssid来自动匹配
6.连接WIFI
sudo ifdown wlan0
,再执行sudo ifup wlan0
即可。之后,可以利用iwconfig
命令查看wifi配置是否已经加载,用ifconfig
来查看是否分配到IP,如果一切顺利,就应该能够上网了。7.更改为中科大的源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
sudo apt-get update
来更新源8.固定接口名称
/etc/udev/rules.d/10-network.rules
,其中的内容如下:SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="wlan0"
ip link
9.更改eth0的IP
/etc/network/interfaces
,将eth0的配置改为如下auto eth0 iface eth0 inet static address 192.168.3.1 netmask 255.255.255.0
/boot/cmdline.txt
,去掉第一步中增加的IP配置10.安装dnsmasq来设置DHCP服务
先来说明一下我的网段设置,有线网络使用192.168.3这个网段,而无线AP端,使用192.168.4这个网段。
sudo apt-get install dnsmasq
,编辑/etc/dnsmasq.conf
,注意更改如下几段:#配置监听地址 listen-address=127.0.0.1,192.168.3.1,192.168.4.1 #配置DHCP分配段 dhcp-range=192.168.3.50,192.168.3.150,12h dhcp-range=192.168.4.50,192.168.4.150,12h
sudo service dnsmasq restart
来启用11.开启包转发
/etc/sysctl.conf
,去掉以下属性前的注释:# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
sudo sysctl -p
来启用sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
12.安装iptables-persistent
sudo apt-get install iptables-persistent
来安装该组件,根据其提示进行初次设置(一路确认)。该组件默认会将防火墙规则保存到/etc/iptables/rules.v4
中。你可以使用如下命令保存和读入规则:#保存现有规则 sudo service netfilter-persistent save #读取并应用先有规则 sudo service netfilter-persistent reload
为什么服务名称变成了netfilter-persistent,这里面好像有故事,留待以后再digg
13.安装第二块WIFI适配器
iw list|grep -A10 'Supported interface modes'
查看。比如,我选用的设备是widemac SL-1506N,其参数如下:Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh point
14.设置第二块Adapter的IP
/etc/network/interfaces
,更改wlan1的配置如下auto wlan1 iface wlan1 inet static address 192.168.4.1 netmask 255.255.255.0
15.固定第二块WIFI适配器的接口名称
16.安装并开启hostapd
sudo apt-get install hostapd
安装它,然后增加配置文件/etc/hostapd/hostapd.conf
如下:interface=wlan1 driver=nl80211 ssid=ssid hw_mode=g channel=13 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=passwd wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
ssid
和wpa_passphrase
属性。sudo hostpad -d /etc/hostapd/hostapd.conf
来观察测试,没有错误可以连接,就OK了。 CTRL+C后,编辑/etc/default/hostapd
,改变DAEMON_CONF的配置如下DAEMON_CONF="/etc/hostapd/hostapd.conf"
sudo service hostapd start
正式启动WIFI热点了至此,通常一个WIFI中继路由器就好了,以下介绍透明科学上网部分
17.建立无污染DNS
server=202.38.93.153
server=202.141.162.123
dig t.co
测试一下18.安装shadowsocks
sudo pip install shadowsocks
即可安装,之后新建配置文件/etc/shadowsocks.conf
如下{ "server":"xxx.xxx.xxx.xxx", "server_port":8964, "local_address":"0.0.0.0", "local_port":1080, "password":"password", "timeout":600, "method":"rc4-md5" }
sudo sslocal -c /etc/shadowsocks.conf -d start
来启动sslocal -c /etc/shadowsocks.conf -d start
加入/etc/rc.local
来让其开机启动19.安装redsocks
sudo apt-get install redsocks
来安装软件,之后编辑/etc/redsocks.conf
,更改其中的redsocks部分如下redsocks { local_ip = 0.0.0.0; local_port = 12345; ip = 127.0.0.1; port = 1080; }
sudo service redsocks start
来启动软件可以使用netstat -an|grep 1080
和netstat -an|grep 12345
来确认一下shadowsocks和redsocks都启动了
20.安装ipset并导入chnroute
sudo apt-get install ipset
安装软件curl 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > chnroute.txt
sudo ipset create chnroute hash:net cat chnroute.txt | sudo xargs -I ip ipset add chnroute ip
21.备份ipset并开机载入
sudo ipset chnroute save > /etc/chnroute.ipset
ipset restore < /etc/chnroute.ipset
22.导入防火墙规则
sudo iptables -t nat -N SHADOWSOCKS sudo iptables -t nat -A SHADOWSOCKS -d $server_IP -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A SHADOWSOCKS -m set --match-set chnroute dst -j RETURN sudo iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 12345 sudo iptables -t nat -A OUTPUT -p tcp -j SHADOWSOCKS sudo iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS
sudo service netfilter-persistent save
23.开机重新生效防火墙规则
iptables-restore < /etc/iptables/rules.v4
至此,整个教程就写完了。这些步骤是我实验了三四遍之后的经验所得,请在转载时,注明出处,非常感谢。
来自https://story.tonylee.name/2016/03/31/yong-shu-mei-pai-da-zao-wu-xian-zhong-ji-ke-xue-shang-wang-lu-you-qi/