Ubuntu/OpenVPN - 如何在连接到公共接口时访问私有网络:

Ubuntu/OpenVPN - 如何在连接到公共接口时访问私有网络:

我使用 Ubuntu 20.04 和 OpenVPN。

这是我的服务器网络接口:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  link/ether 00:0c:29:1f:8c:15 brd ff:ff:ff:ff:ff:ff
  inet xx.xx.76.149/27 brd xx.xx.76.159 scope global ens160
    valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:fe1f:8c15/64 scope link
    valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  link/ether 00:0c:29:1f:8c:1f brd ff:ff:ff:ff:ff:ff
  inet 10.32.53.175/27 brd 10.32.53.191 scope global ens192
    valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:fe1f:8c1f/64 scope link
    valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
  link/none
  inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
    valid_lft forever preferred_lft forever
  inet6 fe80::310e:bddc:f467:681b/64 scope link stable-privacy
    valid_lft forever preferred_lft forever

我已经安装了 openvpn 客户端,当我连接时,我希望能够访问接口ens192和该网络中的所有机器。又名 所有机器10.32.53.160/27

据我所知,我需要将流量从tun0路由到ens192。请记住公共接口就是这个ens160

这个可能吗?如何实现?

答案1

这是来自openvpn 设置指南.(步骤 9)

将这些行添加到开头/etc/ufw/before.rules

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o ens192 -j MASQUERADE
COMMIT
# END OPENVPN RULES

并设置默认转发策略以接受/etc/default/ufw

DEFAULT_FORWARD_POLICY="ACCEPT"

应该允许您将流量重定向到该接口。


我不确定这是否是必需的,但我使用的附加设置是在服务器配置中重定向网关:

push "redirect-gateway def1 bypass-dhcp"

在服务器配置中添加此项会影响所有客户端。

此设置可以针对特定客户端进行,但不要将其添加到服务器配置文件中,而是添加到客户端配置文件中。在服务器配置中,添加以下行:

client-config-dir ccd

然后在服务器的文件夹中创建一个名为的文件夹ccd,并在该文件夹中创建一个文件,并使用客户端的通用名称(假设它是 Venelin)/etc/openvpn/server/servername/ccd/Venelin

push "redirect-gateway def1 bypass-dhcp"

相关内容