
我现在有一台国内的手机通过 open vpn 连接到了国外的 openvpn@server 现在想在 openvpn@server 的服务器上对所有的来自 openvpn 的流量启用透明代理, 使得手机检测 ip 的时候是代理服务器的 ip 。 请给位大佬给点意见。
感谢各位大佬的回复。 开启调试日志后
#开启iptables调试内核模块 $ modprobe nf_log_ipv4 $ sysctl net.netfilter.nf_log.2 net.netfilter.nf_log.2 = nf_log_ipv4 #添加iptables规则 $ iptables -t raw -A PREROUTING -p icmp -j TRACE $ iptables -t raw -A OUTPUT -p icmp -j TRACE 不断查看日志,发现这条命令,
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 127.0.0.1:31338 会把目标地址改为服务器的vpn虚拟网卡地址 10.8.0.1
而iptables 中并没有允许这个地址。 所以只要再加上
iptables -I INPUT -s 10.8.0.0/24 -j ACCEPT 终于跑通了。。。 不容易啊,搞了我好几天。
1 cctv6 2023-09-09 23:36:46 +08:00 我的理解是,给客户端设置默认路由就可以了吧,然后服务端开 ip_forward 和配置 nat 。 |
2 thsun 2023-09-09 23:56:34 +08:00 via iPhone 直接 ip 和 nat 那咯,如上所 |
3 Jamy OP @cdlnls 我也是那么想的,于是本机搭建了一个 redsocks 服务器,开了端口 31338 ,redsocks 会把数据发往配置的代理服务器, 然后执行 iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 127.0.0.1:31338 然后用 curl 测试下,本机的请求可以走代理,但是 vpn 上来的不行。 对于 iptables 理解仅限于常规的使用,实在搞不懂啊。求大佬指点迷津 |
4 Jamy OP @Jamy 也测试这个命令 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 31338 vpn 上来的还是无效。 |
5 ltkun 2023-09-10 07:05:20 +08:00 via Android 国内连国外 openvpn 这种通用协议过不了 gfw 吧 得换其他 |
6 defunct9 2023-09-10 07:12:28 +08:00 via iPhone 开 ssh ,让我上去配 |
7 a33291 2023-09-10 08:29:36 +08:00 感觉 softether 的 nat 更方便 |
10 busier 2023-09-10 13:54:31 +08:00 你都已经搞定 openvpn 连接了,可以说完成 90%了。剩下就是 sysctl 开个 ip_forward 和 iptables 的 nat 表的 POSTROUTING 链设个 MASQUERADE 就搞定的事情...... |
12 n1cogrv 2023-09-10 16:46:48 +08:00 push "redirect-gateway local def1" push "dhcp-option DNS 8.8.8.8" https://openvpn.net/community-resources/how-to/#pushing-dhcp-options-to-clients:~:text=cause%20all%20IP%20network%20traffic%20originating%20on%20client%20machines%20to%20pass%20through%20the%20OpenVPN%20server @Jamy #11 试试用 v2raya 对 server 进行透明代理,再保证 client 的所有网络流量都经过 server ,这时就可以确保 client -> server -> server_tproxy |