不少朋友因为单位网络受限,很多应用和网站都无法正常使用和访问,需要借助SSR、SoftEther VPN等代理工具才能正常使用。虽然很多第三方路由器自制固件都有SS服务端插件,但是不少朋友在单位测试后都觉得效果非常不好,今天给大家分享如何在华硕AC68U路由器搭建SSR服务端,这里就不讨论SS、SSR的原理、优劣,有兴趣的话请自己谷歌学习。
参考文档
https://github.com/RMerl/asuswrt-merlin/wiki/Entware
https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup
实验环境
路由器设备:RT-AC68U
路由器固件:Koolshare-Merlin改版固件380.66_4-X7.5
U盘:Kingston 64GB
第一步 开启路由器SSH
进入路由器后台,点击系统管理-系统设置,开启Enable SSH,应用本页设置即可生效;
第二步 绑定U盘
使用傲梅分区助手将U盘格式化为ext3格式,把U盘插入路由器,建议等待半分钟,让路由器识别加载U盘;
使用SSH终端登陆到路由器后台,执行以下命令:
- [email protected]:/# df -h
确认U盘是否正确挂载,顺便记录下当前U盘的设备名称,如下图,我的U盘设备名称就是:sda
新建一个绑定设备脚本;
- [email protected]:/# vi /mnt/sda/Binding.sh
代码如下:
- cat << EOF > /tmp/script_usbmount.tmp
- if [ \$1 = “/tmp/mnt/sda” ]
- then
- ln -sf \$1 /tmp/opt
- /opt/etc/init.d/rc.unslung start
- fi
- EOF
- nvram set script_usbmount=“`cat /tmp/script_usbmount.tmp`”
- cat << EOF > /tmp/script_usbumount.tmp
- if [ \$1 = “/tmp/mnt/sda” ]
- then
- /opt/etc/init.d/rc.unslung stop
- fi
- EOF
- nvram set script_usbumount=“`cat /tmp/script_usbumount.tmp`”
- nvram commit
- reboot
执行脚本,绑定完成后,脚本会自动重启路由器;
- [email protected]:/# chmod 755 /mnt/sda/Binding.sh
- [email protected]:/# sh /mnt/sda/Binding.sh
第三步 安装Entware
资源在国外服务器,下载安装时间较长,有条件的朋友请准备好加速神器;
- [email protected]:/# cd /mnt/sda/
- [email protected]:/tmp/mnt/sda# wget http://pkg.entware.net/binaries/armv7/installer/entware_install.sh
- [email protected]:/tmp/mnt/sda# chmod 755 entware_install.sh
- [email protected]:/tmp/mnt/sda# ./entware_install.sh
第四步 配置SSR服务端
安装相关工具包;
- [email protected]:/# cd /mnt/sda/
- [email protected]:/tmp/mnt/sda# opkg install git python libopenssl libsodium
下载SSR软件包;
- [email protected]:/tmp/mnt/sda# git clone -b manyuser git://github.com/shadowsocksr/shadowsocksr.git
修改静态库文件路径;
- [email protected]ASUS:/# vi /opt/shadowsocksr/shadowsocks/crypto/util.py
第21行,找到:’/usr/lib*/lib%s.*’ % name,
修改为:’/opt/lib*/lib%s.*’ % name,
运行SSR服务端;
命令格式:python server.py -p 端口 -k 密码 -m 加密 -O 协议 -o 混淆 -d start
- [email protected]:/# cd /opt/shadowsocksr/shadowsocks/
- [email protected]:/tmp/mnt/sda/shadowsocksr/shadowsocks# python server.py -p 443 -k 123456 -m chacha20 -O auth_aes128_sha1 -o tls1.2_ticket_auth -d start
修改防火墙开放端口;
- [email protected]:/# iptables -I INPUT -p tcp –dport 443 -j ACCEPT
- [email protected]:/# iptables -I INPUT -p udp –dport 443 -j ACCEPT
第五步 配置服务端开机启动
为了更加智能,可以写一个Shell脚本,实现服务端开机启动;
- [email protected]:/# vim /jffs/scripts/shadowsocks
脚本内容如下:
- #!/bin/bash
- #更新DDNS
- /sbin/ifconfig ppp0 | grep “inet addr” | awk -F: ‘{print $2}’ | awk ‘{print $1}’ >‘/tmp/gge-get-newip’
- ggeIP=`cat /tmp/gge-get-newip`
- ##防火墙开放443端口
- iptables -I INPUT -p tcp –dport 443 -j ACCEPT
- iptables -I INPUT -p udp –dport 443 -j ACCEPT
- ##启动Shadowsocks
- cd /opt/shadowsocksr/shadowsocks/
- python server.py -p 443 -k 123456 -m chacha20 -O auth_aes128_sha1 -o tls1.2_ticket_auth -d start
开机运行脚本;
- [email protected]:/# echo “sh /jffs/scripts/shadowsocks” >> /jffs/scripts/wan-start
- [email protected]:/# chmod +x /jffs/scripts/shadowsocks
注意,防火墙端口、ShadowsocksR相关配置按照自己的实际情况去修改!