iptables 能否转发一个 tun 的流量到另一个 tun

2022-08-22 17:25:17 +08:00
 bigbyto

最近需要用到 easyconnect 这个 vpn ,因为是深信服的,因此想在一个独立的环境对它隔离,但又想实现全局的功能,因此想用 openvpn 实现转发。

我看了 easyconnect 也是使用 tun 模式的,加上 openvpn 目前有 2 个 tun 。理论上使用 iptables 应该是可以转发 openvpn 的流量,我尝试过下面的指令,并不能起作用。

openvpn: tun0
easyconnect: tun1

iptables -A FORWARD -i tun0 -o tun1 -j ACCEPT

iptables 的文档还是比较多的,看的比较头大,对 iptables 这块不是很熟悉,希望懂得朋友帮帮忙,或者给一些思路我去查文档,非常感谢。

4272 次点击
所在节点    程序员
30 条回复
realpg
2022-08-22 23:32:54 +08:00
先深入学习一下路由的知识
如果不涉及本机是 nat 服务器, iproute2 就完事了
搞啥性能低下的 iptables
julyclyde
2022-08-23 11:37:25 +08:00
首先,iptables 不负责转发
chenjiangui998
2022-08-23 15:58:57 +08:00
我是用虚拟机跑 vpn + clash, 然后在端口转发 clash 给宿主机
0bing
2022-08-23 16:05:24 +08:00
iptables 性能低下???这是喷处理器还是喷内核
facelezz
2022-08-23 17:05:37 +08:00
楼主是想要把 openvpn 的虚拟网卡的流量全都从 easyconnect 的网卡出去吧。

我在用的类似

分享下目前在用的办法,有需要的可以参考:
宿主机装个 windows 虚拟机,然后在虚拟机内 把 easyconnect 的虚拟网卡网络共享( windows 的 ICS 功能)到 Host-only 的网卡,在宿主机上 router 配置 网段到 Host-only 网卡就行了,我目前就这样在用(隔离公司的 easyconnect )

Linux 应该是一样的
facelezz
2022-08-23 17:08:35 +08:00
如果只是单纯为了隔离的话 我上面那个方法不需要 openvpn ,而且你想要域名访问在 hosts 配常用的 IP 关系就可以
linuxyz
2022-08-23 18:54:09 +08:00
@joshu 正解

假设:
- EasyConnect 对端的 net: 10.0.0.0/8, I/F: tun1
- OpenVPN 对端 net: 192.168.100.0/24, I/F: tun0

转接的服务器上可以配:
iptables -t nat -I POSTROUTING -o tun1 -j SNAT --to-source ${tun1_IP}

这里用 MASQUERADE 替换 SNAT 效果是一样的, MASQ 可以自己获得需要转的 tun1 的 IP 地址
bigbyto
2022-08-23 19:54:05 +08:00
谢谢各位提供的信息,我结合你们提供的信息继续研究一下如何处理。
qweaszxcdf
2022-10-10 05:56:29 +08:00
@bigbyto OP 有搞定这个问题么
bigbyto
2022-10-10 10:26:01 +08:00
@qweaszxcdf 很早就搞定啦,有计划写文章彻底介绍网络数据流量和 iptables 的工作工程,不过事情比较多,一直在拖延😂。
有几个点你可以参考一下:
1. openvpn 可能会增加自己的 iptables 规则,只有自己的 ip 段才会做 SNAT ,这个你可以检查你的 nat 表规则
2. 做 DNS 转发时需要启用 loopback 的转发
3. 做 SNAT ,就如同上面朋友所说的,SNAT 可以用 masquerade ,或者直接 snat 到 easyconnect 网卡那个 ip 地址

调试的时候用 tcpdump 看一下 ip 的报文流向可以比较清晰的看到问题所在。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/874612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX