因此,我已經設定了一個相當基本的tun
OpenVPN 伺服器,但在獲取它以便該伺服器可以與所有連接的用戶端進行通訊時遇到了困難。
我目前有兩組客戶端,其中一些不使用 VPN 連接到互聯網(只是為了與其他客戶端通信),另一些則用於redirect-gateway
透過 VPN 發送所有流量。
根據我的設置,所有連接的客戶端都可以與伺服器以及其他客戶端進行通訊。但是,從伺服器,我只能到達(例如 ping)用於redirect-gateway
透過 VPN 發送所有流量的用戶端。不使用該配置的用戶端可以 ping 伺服器,但伺服器無法 ping 回來(它們不會回應且逾時)。
如何設定路由,以便即使客戶端不使用 VPN 作為預設網關,伺服器仍然可以與客戶端通訊?
這是相關的伺服器配置:
port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1
在伺服器上的客戶端設定目錄中,每個客戶端都有一個這樣的檔案(只是為了給每個客戶端一個靜態IP):
ifconfig-push 10.7.0.10 255.255.255.0
本機客戶端配置的相關位元:
client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind
使用 VPN 存取 Internet 的用戶端會新增redirect-gateway def1 bypass-dhcp
至其組態。
我用於ufw
伺服器的防火牆 - 這是相關的配置(在 /etc/ufw/before.rules 中):
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}
由於它在 OpenVZ VPS 上運行,我無法使用MASQUERADE
,但上面的似乎也同樣有效。
關於如何正確設置它有什麼想法嗎?提前致謝。如果重要的話,伺服器運行的是 CentOS。