OpenVPN-重定向网关不起作用

OpenVPN-重定向网关不起作用

我在一台有公网 IP 的服务器上设置了一个 OpenVPN 服务器(VPN ip=10.8.0.1)。实验室里有一台工作站(Ubuntu),有学校 IP,可以访问学校内网资源。

我希望我的 Android 手机和 Windows PC 能够访问这些资源。因此我:

  • OpenVPN 服务器配置:

    dev tun
    拓扑子网
    服务器 10.8.0.0 255.255.255.0
    客户端配置目录 /etc/openvpn/server/ccd
    推送“路由 10.8.0.0 255.255.255.0”
    推送“路由网关 10.8.0.3”

  • 将我的工作站连接到服务器并获取 ip 10.8.0.3,其 ccd 配置(相当于客户端配置)是:

    ifconfig-推 10.8.0.3 255.255.255.0

  • 在工作站中,使用 iptables 并添加了一些项目:

    $ sudo iptables -t filter -S
    -P 输入接受
    -P 转发接受
    -P 输出接受
    $ sudo iptables -t nat -S
    -P 预路由接受
    -P 输入接受 -P
    输出接受-P
    后路由接受
    -A 后路由 -s 10.8.0.0/24 -o wlx0810752b55c9 -j MASQUERADE

  • 我家里的电脑的ccd配置是:

    ifconfig-push 10.8.0.5 255.255.255.0
    推送“路由网关 10.8.0.3”
    推送“重定向网关 def1 旁路 dhcp”
    推送“dhcp 选项 DNS 8.8.8.8”

  • 结果1 该电脑无法连接到互联网。该电脑的路由表为:

    路线打印 -4
    0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.21 35
    0.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291
    128.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291

后两项是“redirect-gateway def1”添加的,没有删除原始默认网关。我很好奇为什么 def1 可以重定向流量?因为原始默认网关仍然存在并且具有更好的度量,因此没有流量会通过 VPN。

  • 结果 2 我的 Android 手机也无法做到这一点。

    $ busybox ip route show table all
    default via 10.183.93.203 dev ccmni0 table 1002
    default dev tun0 src 10.8.0.4
    10.8.0.0/24 dev tun0 table 1015
    10.8.0.0/24 dev tun0 src 10.8.0.4 ...

我确保工作站没有接收流量:

$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
$

我研究过很多与此相关的主题,但没有可行的解决方案。所以,任何人都可以帮助我,任何建议我都会很感激!

答案1

在服务器的 ccd 目录中,工作站文件应包含 iroute 请尝试一下,我正在尝试做同样的事情,但不使用访问服务器,而是使用 Linux 客户端作为网关,如下所示 https://www.youtube.com/watch?v=b7qr0laM8kA

相关内容