Ssh
將 VPN 流量轉發到另一台伺服器
我有 2 台伺服器:
伺服器 A:
Public IP --> 104.x.x.x
伺服器 B:
Public IP --> 188.x.x.x
伺服器 A有 2 個 VPN 伺服器:
Openvpn --> tun0
Wireguard --> wg0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.8.0.1 netmask 255.255.255.0 destination 10.8.0.1 inet6 fe80::ae7d:f7ab:615b:a78a prefixlen 64 scopeid 0x20<link> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4 bytes 304 (304.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420 inet 10.9.0.1 netmask 255.255.255.0 destination 10.9.0.1 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC) RX packets 22563 bytes 14268224 (14.2 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20017 bytes 15166196 (15.1 MB) TX errors 0 dropped 6 overruns 0 carrier 0 collisions 0
我希望如果有任何客戶端連接到openvpn或wireguard,而不是從伺服器 A連接到網際網路,而是使用伺服器 B網際網路連接
Clients (Openvpn or wireguard)
–>Server A
–>Server B
–>Connect to internet
我怎樣才能使成為可能?(使用 ssh 或其他方式將流量從伺服器 A 轉發到伺服器 B)
謝謝,
最好的問候
首先,您需要在伺服器 A 和 B 之間建立 VPN 連結,假設伺服器 B 將獲取
10.10.0.1
地址,伺服器 A10.10.0.2
和伺服器 A 上的虛擬介面將被呼叫tun1
。您可以使用更舒適的任何技術。然後,正如davidgo 所說,您需要在伺服器 A 上使用基於策略的路由。為此:
- 在文件中添加一個新的路由表
/etc/iproute2/rt_tables
:200 vpn
- 添加選擇規則以將路由表
vpn
用於來自專用網路的所有流量:ip rule add from 10.0.0.0/8 table vpn
- 填寫路由表
ip route add 10.8.0.0/16 dev tun0 src 10.8.0.1 table vpn ip route add 10.9.0.0/16 dev wg0 src 10.9.0.1 table vpn ip route add 10.10.0.0/16 dev tun1 src 10.10.0.2 table vpn ip route add default via 10.10.0.1 dev tun1 table vpn