路由器搭建SSR

不少朋友因为单位网络受限,很多应用和网站都无法正常使用和访问,需要借助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终端登陆到路由器后台,执行以下命令:

  1. [email protected]:/# df -h

确认U盘是否正确挂载,顺便记录下当前U盘的设备名称,如下图,我的U盘设备名称就是:sda

ShadowsocksR

新建一个绑定设备脚本;

  1. [email protected]:/# vi /mnt/sda/Binding.sh

代码如下:

  1. cat << EOF > /tmp/script_usbmount.tmp
  2. if [ \$1 = “/tmp/mnt/sda” ]
  3. then
  4. ln -sf \$1 /tmp/opt
  5. /opt/etc/init.d/rc.unslung start
  6. fi
  7. EOF
  8. nvram set script_usbmount=“`cat /tmp/script_usbmount.tmp`”
  9. cat << EOF > /tmp/script_usbumount.tmp
  10. if [ \$1 = “/tmp/mnt/sda” ]
  11. then
  12. /opt/etc/init.d/rc.unslung stop
  13. fi
  14. EOF
  15. nvram set script_usbumount=“`cat /tmp/script_usbumount.tmp`”
  16. nvram commit
  17. reboot

执行脚本,绑定完成后,脚本会自动重启路由器;

  1. [email protected]:/# chmod 755 /mnt/sda/Binding.sh
  2. [email protected]:/# sh /mnt/sda/Binding.sh

第三步 安装Entware

资源在国外服务器,下载安装时间较长,有条件的朋友请准备好加速神器;

  1. [email protected]:/# cd /mnt/sda/
  2. [email protected]:/tmp/mnt/sda# wget http://pkg.entware.net/binaries/armv7/installer/entware_install.sh
  3. [email protected]:/tmp/mnt/sda# chmod 755 entware_install.sh
  4. [email protected]:/tmp/mnt/sda# ./entware_install.sh

第四步 配置SSR服务端

安装相关工具包;

  1. [email protected]:/# cd /mnt/sda/
  2. [email protected]:/tmp/mnt/sda# opkg install git python libopenssl libsodium

下载SSR软件包;

  1. [email protected]:/tmp/mnt/sda# git clone -b manyuser git://github.com/shadowsocksr/shadowsocksr.git

修改静态库文件路径;

  1. [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

  1. [email protected]:/# cd /opt/shadowsocksr/shadowsocks/
  2. [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

修改防火墙开放端口;

  1. [email protected]:/# iptables -I INPUT -p tcp –dport 443 -j ACCEPT
  2. [email protected]:/# iptables -I INPUT -p udp –dport 443 -j ACCEPT

第五步 配置服务端开机启动

为了更加智能,可以写一个Shell脚本,实现服务端开机启动;

  1. [email protected]:/# vim /jffs/scripts/shadowsocks

脚本内容如下:

  1. #!/bin/bash
  2. #更新DDNS
  3. /sbin/ifconfig ppp0 | grep “inet addr” | awk -F: ‘{print $2}’ | awk ‘{print $1}’ >‘/tmp/gge-get-newip’
  4. ggeIP=`cat /tmp/gge-get-newip`
  5. ##防火墙开放443端口
  6. iptables -I INPUT -p tcp –dport 443 -j ACCEPT
  7. iptables -I INPUT -p udp –dport 443 -j ACCEPT
  8. ##启动Shadowsocks
  9. cd /opt/shadowsocksr/shadowsocks/
  10. python server.py -p 443 -k 123456 -m chacha20 -O auth_aes128_sha1 -o tls1.2_ticket_auth -d start

开机运行脚本;

  1. [email protected]:/# echo “sh /jffs/scripts/shadowsocks” >> /jffs/scripts/wan-start
  2. [email protected]:/# chmod +x /jffs/scripts/shadowsocks

注意,防火墙端口、ShadowsocksR相关配置按照自己的实际情况去修改!

zh-CN Chinese (Simplified)
X