我使用 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"