/bin/sh

/bin/sh

我需要为我的路由添加一个 IP。我使用 Openvpn 连接到实验室。我的路由现在看起来像这样;

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    600    0     0   wlan0
192.168.178.0   0.0.0.0         255.255.255.0   U     600    0     0   wlan0
192.168.193.0   0.0.0.0         255.255.255.0   U     0      0     0   tap0

我需要添加(例如)IP 20.20.20.0/24,以便我可以通过 tap0 访问 Web 服务器 20.20.20.8。我无法让它工作。如何设置正确的网关和 IP?

答案1

请看这里:

https://askubuntu.com/questions/612840/adding-route-on-client-using-openvpn

D) 奖励选项!openvpn 还有一个 up /down 指令,允许您在连接到 vpn 时启动脚本,这可以让您真正做任何您想做的事情。设置 dns、路由等。但它要求您将命令存储在另一个文件中。

因此,如果你的 openvpn 客户端配置文件中有以下内容

脚本安全 2

启动运行-stuff-after-vpn-connect.sh

创建一个名为 run-stuff-after-vpn-connect.sh 的文件(确保它具有执行权限。并添加:

/bin/sh

route add -net 172.16.0.0/24 dev tun0 将在隧道启动后立即添加路由

因此,您基本上将您的路由放入 sh 文件中,例如 my_route.sh(我假设 192.168.193.1 是您的 OpenVPN GW 本地 IP 地址)

#!/bin/sh
/usr/sbin/ip route add 20.20.20.0/24 via 192.168.193.1 dev tap0

然后添加到你的 OpenVPN 客户端的配置文件中

up /your path to/my_route.sh

它可能不起作用,所以你也可以通过 systemd 启动配置添加路由

[Unit]
Description=OpenVPN connection to %i

[Service]
Type=forking
ExecStart=/usr/bin/openvpn --cd /etc/openvpn --config /etc/openvpn/%i.conf --daemon openvpn@%i
ExecStartPost=/your path to/my-add-route.sh
ExecStop=/your path to/my-remove-route.sh

[Install]
WantedBy=multi-user.target

相关内容