无法退出我的 OpenVPN

无法退出我的 OpenVPN

我刚刚在 Google Cloud 平台上安装了一台 Debian 机器。现在我有一个 Debian 服务器和一个 Windows 客户端。我可以以“普通”方式从客户端 ssh 到服务器。之后我在 Debian 上安装了 OpenVPN 服务器。此时我可以通过 OpenVPN 连接两台机器。

但现在开始我所有的问题。如果我建立 VPN,我就可以在两个设备之间进行通信,但不能与任何其他设备进行通信!

如果我连接了 VPN,我的客户端就会停止与网络的其他部分通信。

在 VPN 下我想要以下地址 172.16.0.1 服务器 172.16.0.2 客户端

在服务器端

    # netstat -nr -f inet
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         10.138.0.1      0.0.0.0         UG        0 0          0 ens4
    10.138.0.1      0.0.0.0         255.255.255.255 UH        0 0          0 ens4
    172.16.0.0      0.0.0.0         255.255.255.0   U         0 0          0 tun0
    
# cat  /proc/sys/net/ipv4/ip_forward
1


    # iptables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A FORWARD -s 10.8.0.0/24 -j ACCEPT

我想念什么?如果您需要任何其他信息,请告诉我。谢谢

这是我的客户端 OpenVPN 配置文件:

client
dev tun
proto udp
remote xxx.hopto.org 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
xxx
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-crypt>

这是服务器端

$ cat /etc/openvpn/server/server.conf
local 10.138.0.2
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 172.16.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify

连接时来自客户端的更多信息:

>ping 1.1.1.1

Esecuzione di Ping 1.1.1.1 con 32 byte di dati:
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.

Statistiche Ping per 1.1.1.1:
    Pacchetti: Trasmessi = 4, Ricevuti = 0,
    Persi = 4 (100% persi),

>tracert 1.1.1.1

Traccia instradamento verso 1.1.1.1 su un massimo di 30 punti di passaggio

  1   150 ms   149 ms   150 ms  172.16.0.1
  2     *        *        *     Richiesta scaduta.
  3     *        *        *     Richiesta scaduta.
  4     *        *        *     Richiesta scaduta.
  5     *        *        *     Richiesta scaduta.

>nslookup unix.stackexchange.com 1.1.1.1
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  1.1.1.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.

2022 年 3 月 10 日更新

这是没有 VPN 的跟踪器日志

>tracert 1.1.1.1

Traccia instradamento verso one.one.one.one [1.1.1.1]
su un massimo di 30 punti di passaggio:

  1     1 ms     2 ms     2 ms  192.168.1.1
  2     3 ms     1 ms     3 ms  2.112.209.88.static.monaco.mc [88.209.112.2]
  3     3 ms     2 ms     2 ms  l5.pe01ftv.monaco-telecom.net [195.78.0.66]
  4     *        3 ms     3 ms  l1.pe01cst.monaco-telecom.net [195.78.0.65]
  5     6 ms     6 ms     8 ms  l500.pe01mrs.monaco-telecom.net [195.78.0.89]
  6     *        *        *     Richiesta scaduta.
  7     8 ms     7 ms     6 ms  be2065.ccr31.mrs02.atlas.cogentco.com [154.54.37.245]
  8    13 ms     *        *     149.6.154.130
  9    12 ms    12 ms    11 ms  one.one.one.one [1.1.1.1]

Traccia completata.

2022 年 3 月 18 日更新

我在网上搜索以找到解决方案

我在一个网站上发现我的配置与该网站上的配置之间存在差异。

运行以下命令

$ sudo systemctl cat openvpn-iptables.service

我注意到我得到了以下结果

ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to 10.138.0.2

在网站中网络地址转换部分被指定为公共地址。这会是问题所在吗?

答案1

问题是这样的:

push "redirect-gateway def1 bypass-dhcp"

如果您阅读 OpenVPN 的文档(man openvpn这是一个很好的起点),您可以了解这些选项的作用:

--redirect-gateway flags…自动执行路由命令以使所有传出 IP 流量通过 VPN 重定向。这是一个客户端选项。

然后继续解释两个选项标志:

def10.0.0.0/1- 使用此标志通过使用和128.0.0.0/1而不是 来覆盖默认网关0.0.0.0/0。这样做的好处是可以覆盖但不会清除原始默认网关。

bypass-dhcp-- 添加绕过隧道的到 DHCP 服务器的直接路由(如果它是非本地的)[...]。

redirect-gateway选项由服务器在连接时发送到客户端。它告诉客户端发送所有流量通过VPN。不仅仅是目标网络的数据,而是一切。

在我看来,您不想要此选项,但只有目标网络的流量应通过 VPN 路由。

相关内容