Skip to content

Instantly share code, notes, and snippets.

@lxyu
Created April 25, 2016 17:47
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save lxyu/37537eb6ea1b39c11de49fa9e606536a to your computer and use it in GitHub Desktop.
Save lxyu/37537eb6ea1b39c11de49fa9e606536a to your computer and use it in GitHub Desktop.
SS everywhere for asus merlin (working with openvpn server and ss-server)

OpenVPN Server

选择 automatic 引入的防火墙配置问题,默认规则里面有一行:

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 1194 -j ACCEPT

使连接直接进入 ACCEPT 而跳过了 SHADOWSOCKS chain。

解决方案:

a. 执行命令删掉这行规则 (其中 tcp 和 1194 分别对应 openxxx 的设置)

iptables -t nat -D PREROUTING -p tcp -m tcp --dport 1194 -j ACCEPT

b. 更改 OpenVPN Server 的防火墙为 Custom,然后在 /jffs/scripts/firewall-start 里面加上配置:

#!/bin/sh
iptables -I INPUT -p tcp --dport 1194 -j ACCEPT
iptables -I INPUT -i tun21 -j ACCEPT
iptables -I FORWARD 2 -i tun21 -j ACCEPT

ss-server

问题在于 ss-redir 和对应的 iptables 规则,只修改了路由器作为 gateway 的时候的流量。 而 ss-server 是开在路由器本地的,流量并没有被 SHADOWSOCKS chain 修改。

如果希望使 ss-server 的流量遵循自动翻墙的规则,执行:

iptables -t nat -I OUTPUT -p tcp -j SHADOWSOCKS
@prtitrz
Copy link

prtitrz commented Oct 19, 2016

这个是路由器启了ss客户端翻墙后,在路由器上启动openvpn server给譬如手机的终端连接么?

@iamhix
Copy link

iamhix commented Jul 14, 2017

目前梅林的版本下,删除语句貌似不成功,发现直接修改防火墙为custom,PREROUTING里也就没有那一句了。但是找不到/jffs/scripts/firewall-start,这个文件。只能直接输入下面的四条命令,openvpn可以连接,ss成功,但是过一段时间就openvpn连不上了,需要再次输入命令。请问怎样可以不用老丢配置。谢谢。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment