配置本地socks5
免密码登陆远程服务器
|
|
开机自启动 socks5 @ *:7070
|
|
|
|
配置防火墙规则 – 如果LAN口为ACCEPT状态,则该规则可以免掉
|
|
测试与验证
|
|
安装与配置PassWall
安装PassWall
- 添加第三方源
TBD
- 安装PassWall和测试工具
|
|
- 安装nftables版本dnsmasq
|
|
解决DNS污染的问题
DNS解析拓扑:
dnsmasq @ *:53/UDP => chinadns @ 127.0.0.1:15354/UDP => dns2socks @ 127.0.0.1:15353/TCP => socks5 @ 127.0.0.1:7070/TCP => 8.8.8.8:53
构建DNS解析通道:
配置 socks5 @ *:7070
@see 配置socks5
PassWall => 节点列表 => 添加
dns2socks @ 127.0.0.1:15353
基本设置 => DNS
chinadns @ 127.0.0.1:15354
上一步勾选ChinaDNS-NG!!!
dnsmasq @ *:53
网络 => DHCP/DNS => 高级设置 => DNS服务器端口 => 53
上游DNS被passwall自动设置成了 127.0.0.1#15354
1 2 3 4 5 6
$ cat /tmp/dnsmasq.d/dnsmasq-passwall.conf conf-dir=/tmp/dnsmasq.d/passwall server=127.0.0.1#15354 all-servers no-poll no-resolv
流量自动重定向
流量重定向拓扑:
LAN network traffic @ *:1070 => xray @ *:1070 => @gfwlist => ipt2socks_TCP_UDP @ *:1041 => socks5 @ *:7070 @chnlist => forward to WAN network
设置ipt2socks & xray
高级设置
a. 由于高版本kernel已经改为nftables,而OpenWRT自带dnsmasq并没有nftables支持,所以我们需要在安装第三方的dnsmasq的同时,变更PassWall的设置为NFTables。
b.
更新gfwlist & chnlist
添加例外:将外网服务器添加到直连列表(这就是PassWall延时1s启动的原因?)
测试与验证
打开PassWall主开关:PassWall => 基本设置 => 主要 => 主开关 => 勾选 => 保存并应用
确认图中几点是否成功设置。
确认dnsmasq的DNS加载正确
重启路由器,查看syslog,会发现以下字段,这说明dnsmasq的DNS已经配置完成
查看所有组件
|
|
查看网络端口
|
|
测试DNS解析
开启log:DHCP/DNS => 常规设置 => 记录查询日志 => 勾选 禁用缓存:DHCP/DNS => 高级设置 => DNS查询缓存大小 => 0
终端1:
|
|
终端2:
|
|
需要测试端口包括:
- 127.0.0.1#15353 - Google
- 127.0.0.1#15354 - Google & Baidu
- 127.0.0.1#53 - Google & Baidu
逐级对DNS端口进行测试,直到所有端口都Ok为止,同时可用在线ip查询工具进行确认。以53端口测试Google为例:
测试网络连接
|
|
需要测试的端口包括:
- 10.10.10.1:7070 - Google
- 10.10.10.1:1070 - Google & Baidu
- 直连测试 - Google & Baidu & localhost
注意:此处测试最好在OpenWRT管理的子网计算机上进行
配置出错,无法访问本地网络:
安装与配置AdGuardHome
一定不要安装luci-app-adguardhome,好像版本不匹配,两者用的配置文件不太一样。
暂修改端口为8080和1053,稍后我们再将DNS端口改成53,取代dnsmasq成为默认DNS服务器
配置默认DNS服务器
将dnsmasq的默认端口改成54
修改AdGuardHome默认端口为53,上游DNS服务器为127.0.0.1:15354
这里最好在命令行下配置,不知为什么webui中上游DNS服务器测试无法通过,一直无法配置成功。在命令行下修改之后,再测试上游服务器就Ok了。
查看仪表盘,有DNS查询和拦截数据就说明配置成功了。
创建AdGuard入口
|
|
|
|
性能测试
queryperf
- 主路由
- 2xlan
- bridge
- 旁路由(科学上网)
进阶:定制自己的科学上网路由
开启全局socks端口
可以说,这是整个科学上网最重要也是最难的一步。我们不但要能够实现科学上网,而且还要保证这条路能够稳定长期的运行下去。当然,这里并不是说一定要socks,其他协议端口应该也是可以的,比如vpn类型的网络或其他可以稳定连接的协议。
我试过PassWall和Hello World,这第一步都设计得比较简单或模糊不清。比如PassWall,到处都是socks,搞得都不知道什么是什么了,让初学者很难摸清;而Hello World则是定死在ssr之上,我一直没有调通ssh和ss socks的使用方法。我为了能够直接接入ssh socks5接口,不知道经历了多少磨难。当然这也许和我的水平有关系。
==> 扩展:n2n网络
|
|
|
|
配置服务器
一台具有公网IP且可连接外网的虚拟主机
ssh daemon
shadowsocks server
本地ssh socks
ssh-socks5.sh
为什么还要建立ssh socks:
简单!!!重要的事情说三遍。不需要额外的客户端,有ssh的地方就可以实现,配合系统全局代理或浏览器,就可以实现代理,为后续步骤提供方便,同时也可以做交叉验证。
本地ss socks
shadowsocks-libev-ss-local
ss-socks5.sh
cat /tmp/etc/passwall/SOCKS_TCP.json { “method”: “chacha20-ietf-poly1305”, “local_port”: 1070, “reuse_port”: true, “server_port”: 7070, “local_address”: “0.0.0.0”, “password”: “chen1234@sss”, “fast_open”: true, “mode”: “tcp_and_udp”, “timeout”: 300, “server”: “mtdcy.com” }
问题
- xray/v2ray在做什么?
关闭xray/v2ray的网络嗅探,一切正常!!!
路由器重启之后,第一次无法科学上网,需要本地切换到代理(*:1070),使用一次之后直连方可科学上网。
WHY? ==> dnsmasq的问题,重启服务后ok ==> 待解决