我需要为我的路由添加一个 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