如何在 openvpn 中与服务器端共享客户端互联网连接?

How to share client side internet connection with server side in openvpn?

我在日本的 Ubuntu 14.04 上设置了一个 openvpn 服务器,而我的兄弟在瑞士的 Ubuntu 14.04 上设置了一个 openvpn 客户端。 vpn 连接成功,客户端或服务器端的 ping 请求得到响应 successfully.Also 我在我的计算机中设置了 IP 转发和 nat 配置。我的兄弟可以通过我的互联网连接(连接到日本 ISP)浏览互联网。他上网的时候,他的publicIP和我的一样

问题: "我可以通过他的 internet 连接浏览 internet,并且在浏览 internet 时会看到他的 public IP,"with this vpn structure(his computer->client side and mycomputer->server side)"?如果可以,必须使用哪个配置?

我知道,他做服务端,我做客户端,我可以做到,但是问题很明确了。

经过苦苦搜索,解决方案是: 使用 openvpn 建立点对点安全连接,如 this 是解决方案(简单的点对点安全连接)。 一些路由 table 条目和防火墙条目必须添加到每一侧。 在日本以p-t-p服务器模式启动openvpn并命名为A,在瑞士以p-t-p客户端模式启动openvpn并命名为B。连接建立非常快。 然后在 Ubuntu 终端(A(日本)隧道接口 IP 为 10.8.0.1,B(瑞士)隧道接口 IP 为 10.8.0.2)中像这样在日本侧添加路由 table 条目:

route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.8.0.2 dev tun0
route add -net 111.111.111.111  netmask 255.255.255.255 gw 192.168.1.1 dev eth1 //(eth1 is the internet interface)
//replace 111.111.111.111 with Swiss side public IP
//192.168.1.1 is the IP of internet interface

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

并在瑞士方面添加一些防火墙规则,如下所示:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE      //wlan0 is internet interface in Swiss side

然后A方上网的时候,他的publicIP和B方的publicIP是一样的