Linux

多個 openVPN 實例 - tun1 失敗

  • May 24, 2012

各種資源位於以下 LAN 上,其中之一是 Linux openVPN 伺服器。由於復雜的原因,我必須執行 2 個 openVPN 伺服器實例,VPN1 和 VPN2。VPN1 執行良好,將 10.8.0.x tun0 IP 分發給連接的客戶端。然後客戶端可以訪問 192.168.44.x LAN 上的任何資源,一切都很好。

VPN2 是使用 ifconfig 設置的,而不是伺服器指令。這是因為我必須在 VPN2 的客戶端上手動輸入 tap-win32 tcp/ip 靜態 IP(原因未解釋)。

啟動 VPN2 後,我在日誌中看到“TUN/TAP 設備 tun1 已打開”,但 sudo ifconfig顯示 tun1,只有 tun0…為什麼?

客戶端能夠成功連接到 VPN2,但無法訪問 192.168.44.x 區域網路上的任何資源?我在 10.9.1.x 和 192.168.44.x 之間為 VPN2 設置了 LAN 路由器上的靜態路由(就像我為 VPN1 所做的那樣),所以這不是問題。

我在 openVPN 伺服器上啟用了 ip_forwarding,我在 openVPN 伺服器上打開了 1194-1195 ufw 防火牆。

任何幫助都會很棒!

LAN (192.168.44.x)
         |
         |
Linux openVPN Server (192.168.44.90)
   |          |
   |          |
  VPN1      VPN2
10.8.0.x   10.9.1.x

VPN1.conf

port 1194
proto udp
dev tun0
ca keys/VPN1ca/ca.crt
cert keys/VPN1ca/serverkey.crt
key keys/VPN1ca/serverkey.key
dh keys/VPN1ca/dh1024.pem
server 10.8.0.0 255.255.255.0
crl-verify keys/VPN1ca/crl.pem
ifconfig-pool-persist servers/VPN1/logs/ipp.txt
tls-auth servers/VPN1/ta.key 0
cipher BF-CBC
user nobody
group nogroup
status servers/VPN1/logs/openvpn-status.log
log-append servers/VPN1/logs/openvpn.log
verb 2
mute 20
max-clients 5
keepalive 10 120
client-config-dir /etc/openvpn/servers/VPN1/ccd
tls-server
comp-lzo
persist-key
persist-tun
ccd-exclusive
push "route 192.168.44.0 255.255.255.0"

VPN2.conf

port 1195
proto udp
dev tun1
ca keys/VPN2ca/ca.crt
cert keys/VPN2ca/sv_serverkey.crt
key keys/VPN2ca/sv_serverkey.key
dh keys/VPN2ca/dh2048.pem
crl-verify keys/VPN2ca/crl.pem
tls-auth servers/VPN2/ta.key 0
cipher BF-CBC
user nobody
group nogroup
status servers/VPN2/logs/openvpn-status.log
log-append servers/VPN2/logs/openvpn.log
verb 2
mute 20
max-clients 2
keepalive 10 120
tls-server
comp-lzo
persist-key
persist-tun
push "route 192.168.44.0 255.255.255.0"
ifconfig 10.9.1.5 10.9.1.6
#ifconfig-noexec <--this needed to be removed

VPN2client.ovpn

client
proto udp
dev tun1
ca ca.crt
dh dh2048.pem
cert VPN2client.crt
key VPN2client.key
remote x.x.x.x 1195
tls-auth ta.key 1
cipher BF-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind
ifconfig 10.9.1.6 10.9.1.5
ifconfig-noexec

編輯:

ifconfig -a:

顯示 eth0、lo & tun0、tun1:

tun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
     inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
     UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
     RX packets:37 errors:0 dropped:0 overruns:0 frame:0
     TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     RX bytes:4345 (4.3 KB)  TX bytes:5019 (5.0 KB)


tun1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
     POINTOPOINT NOARP MULTICAST  MTU:1500  Metric:1
     RX packets:500 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     RX bytes:125909 (125.9 KB)  TX bytes:0 (0.0 B)

編輯2:

好的。通過刪除 ifconfig-noexec 解決了上述問題。下一個問題…從 192.168.44.x LAN 映射到 10.9.1.x VPNclient 上的列印機。VPNclient 使用 openVPN-GUI 連接。有時 \10.9.1.x\printer 工作,有時沒有,以前有人處理過這個嗎?

謝謝!

您將要刪除伺服器上的 ifconfig-noexec。在客戶端,您應該保留它,因為您要單獨設置其 tun 介面的 IP。

在伺服器上,如果您指定 ifconfig-noexec (基本上,作業系統本質上沒有執行),則不會出現 tun1 介面ifconfig tun1 10.9.1.5 up。因此,LAN 上的任何人都不會知道如何路由到作為客戶端 IP 的 10.9.1.6 機器。

引用自:https://serverfault.com/questions/392387