首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用openvpn的VPN链接

使用openvpn的VPN链接
EN

Server Fault用户
提问于 2013-05-31 03:44:52
回答 1查看 3.2K关注 0票数 6

我的老板太偏执了,想让我帮他组织某种VPN链接。我想出了以下方案:

代码语言:javascript
复制
Client              VPN1                    VPN2
10.0.1.x[tun0]------10.0.1.1[tun0]
[1.1.1.1][eth0]     10.0.2.x[tun1]----------10.0.2.1[tun0]
                    2.2.2.2[eth0]           3.3.3.3[eth0]------internet

我可以通过iptables转发从客户端使用VPN1,如下所示:

代码语言:javascript
复制
vpn1 # iptables -A FORWARD -s 10.0.1.0/24 -j ACCEPT
vpn1 # iptables -A FORWARD -d 10.0.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
vpn1 # iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j SNAT --to-source 2.2.2.2     

如果将VPN2设置为默认网关,或者选择指定的主机,则可以从VPN1中使用它,如下所示:

代码语言:javascript
复制
vpn1 # route add -host 8.8.8.8 dev tun1      

我不能使用的是来自客户端的全链VPN1-VPN2-Internet。我尝试将流量从tun0转发到tun1,反之亦然:

代码语言:javascript
复制
vpn1 # iptables -A FORWARD -i tun0 -o tun1 -j ACCEPT
vpn1 # iptables -A FORWARD -i tun1 -o tun0 -j ACCEPT

在本例中,我可以看到两个VPN1 tun接口上从客户机IP发出的ICMP请求,但无法得到任何响应。

如何通过全链转发客户端的所有通信量?

编辑:(全部在vpn1上)

tcpdump -i tun0 icmp显示10.0.1.6(客户端)接入互联网的请求。

tcpdump -i tun1没有显示任何内容

tcpdump -i eth0显示与tun0相同,10.0.1.6(客户端)发送请求

我的想法是iptable规则应该将tun0转发给tun1,反之亦然,但出于某种原因,从tun0到eth0的通信量,然后再转到互联网,会不会是问题所在?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2013-05-31 12:06:47

我设法让这玩意正常工作了。基本上,我需要将来自客户端的所有数据包转发到VPN1的VPN1接口到VPN1 tun1 IP地址(10.0.2.6)。

代码语言:javascript
复制
iptables -A FORWARD -s 10.0.1.0/24 -j ACCEPT
iptables -A FORWARD -d 10.0.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j SNAT --to-source 10.0.2.6

其次,我需要通过添加以下规则来使用iproute2系统:

这会将默认路由添加到表120中。

代码语言:javascript
复制
ip route add default via 10.0.2.6 table 120 

而这种基于规则的路由,则以数据包的src为条件。

代码语言:javascript
复制
ip rule add from 10.0.1.0/24 table 120 

很好走了!现在,为了测试,我在客户端上做了traceroute 8.8.8.8:

代码语言:javascript
复制
1  10.0.1.1 (10.0.1.1) 223.570 ms  444.898 ms  444.875 ms
2  10.0.2.1 (10.0.2.1) 444.845 ms  666.709 ms  889.544 ms
....

就像自动化和后置脚本.谢谢你帮忙!

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/512160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档