现在的位置: 首页 > 教程分享 > 正文

华硕AC68U路由器搭建SSR服务端

2017年07月05日 教程分享 ⁄ 共 3038字 ⁄ 字号 评论 13 条

不少朋友因为单位网络受限,很多应用和网站都无法正常使用和访问,需要借助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. Administrator@ASUS:/# df -h  

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

ShadowsocksR

新建一个绑定设备脚本;

  1. Administrator@ASUS:/# 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.   
  10. cat << EOF > /tmp/script_usbumount.tmp  
  11. if [ \$1 = "/tmp/mnt/sda" ]  
  12. then  
  13. /opt/etc/init.d/rc.unslung stop  
  14. fi  
  15. EOF  
  16. nvram set script_usbumount="`cat /tmp/script_usbumount.tmp`"  
  17. nvram commit   
  18. reboot  

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

  1. Administrator@ASUS:/# chmod 755 /mnt/sda/Binding.sh  
  2. Administrator@ASUS:/# sh /mnt/sda/Binding.sh  

第三步 安装Entware

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

  1. Administrator@ASUS:/# cd /mnt/sda/  
  2. Administrator@ASUS:/tmp/mnt/sda# wget http://pkg.entware.net/binaries/armv7/installer/entware_install.sh  
  3. Administrator@ASUS:/tmp/mnt/sda# chmod 755 entware_install.sh  
  4. Administrator@ASUS:/tmp/mnt/sda# ./entware_install.sh  

第四步 配置SSR服务端

安装相关工具包;

  1. Administrator@ASUS:/# cd /mnt/sda/  
  2. Administrator@ASUS:/tmp/mnt/sda# opkg install git python libopenssl libsodium  

下载SSR软件包;

  1. Administrator@ASUS:/tmp/mnt/sda# git clone -b manyuser git://github.com/shadowsocksr/shadowsocksr.git  

修改静态库文件路径;

  1. Administrator@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. Administrator@ASUS:/# cd /opt/shadowsocksr/shadowsocks/  
  2. Administrator@ASUS:/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. Administrator@ASUS:/# iptables -I INPUT -p tcp --dport 443 -j ACCEPT  
  2. Administrator@ASUS:/# iptables -I INPUT -p udp --dport 443 -j ACCEPT  

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

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

  1. Administrator@ASUS:/# vim /jffs/scripts/shadowsocks  

脚本内容如下:

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

开机运行脚本;

  1. Administrator@ASUS:/# echo "sh /jffs/scripts/shadowsocks" >> /jffs/scripts/wan-start  
  2. Administrator@ASUS:/# chmod +x /jffs/scripts/shadowsocks  

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

第六步 配置SSR客户端和其他说明

配置客户端这个我想大家都会的,就不唠叨了。

目前有 13 条留言    访客:8 条, 博主:5 条

  1. 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 12:15  @回复 回复

    想问问 动态公网ip 能架这个ssr路由服务端 我的是ac68u 香港的宽带


    • 管理员
      王花郎广东省广州市 电信   2017年10月14日 上午 12:21  @回复 回复

      路由器配置DDNS,SSR客户端的服务器地址填写你设置的动态域名即可。

      • 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 12:25  @回复 回复

        请问 我已把u盘格式为ext3 xshell也能访问路由器了 王大神请问你能加我qq或微信吗 我跪求你解答我问题了 因为我也是造福同胞用 不收费的


        • 管理员
          王花郎广东省广州市 电信   2017年10月14日 上午 12:37  @回复 回复

          参考教程复制粘贴命令就可以了,还是搞不定的话明天再联系吧,先休息了。

          • 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 12:40  @回复 回复

            好的 王大神 十万个麻烦你 明天可以抽时间加我联系方法 太谢谢你了

          • 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 10:49  @回复 回复

            想问问 路由的防火墙 要关掉 才架设吗?


            • 管理员
              王花郎广东省广州市 电信   2017年10月14日 上午 11:33  @回复 回复

              架设过程中可以临时先关闭防火墙,架设完毕后再启动防火墙,并添加自己定义的SS服务端端口例外即可。

              iptables -I INPUT -p tcp –dport 端口号 -j ACCEPT
              iptables -I INPUT -p udp –dport 端口号 -j ACCEPT

              • 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 11:37  @回复 回复

                iptables -I INPUT -p tcp –dport 端口号 -j ACCEPT
                iptables -I INPUT -p udp –dport 端口号 -j ACCEPT
                这个dport端口号 任意就行? 可以跟你写443行吗?
                如果大神能直接联系我就好了…..

              • 香港網友香港 电讯盈科有限公司   2017年10月14日 上午 11:50  @回复 回复

                #!/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
                更新DDNS那步 是写自己路由的ddns还是照你打#更新DDNS ?

  2. Eddy陕西省渭南市 电信   2017年08月18日 下午 5:15  @回复 回复

    能用512MB的U盘搭建吗?


    • 管理员
      王花郎广东省广州市 电信   2017年08月18日 下午 6:37  @回复 回复

      可以,Python环境应该就100M左右,剩下的U盘空间可以考虑分配256M到交换分区。

  3. Eddy陕西省渭南市 电信   2017年08月18日 下午 3:47  @回复 回复

    大神,

    请问这个服务端能用auth_chain_a吗?

    加密方式:none 协议:auth_chain_a 混淆方式:plain
    这设置推荐使用吗?


    • 管理员
      王花郎广东省广州市 电信   2017年08月18日 下午 4:53  @回复 回复

      auth_chain_a据说很耗内存,我就没去折腾了,我主要是使用如下,合适自己当地运营商情况的才是最好的:
      ~
      加密:chacha20
      协议:auth_aes128_sha1
      混淆:tls1.2_ticket_auth

给我留言

留言无头像?

×