VPN クライアントがインターネットに接続できない

VPN クライアントがインターネットに接続できない

最近、VPN サーバーの構成中に、VPN サーバー経由でインターネットに接続できないという問題に直面しました。実際、VPN をインストールした VPS (Debian 8) を使用しています。クライアントは正常に接続します。trace route コマンドを使用してトラフィックが停止する場所を検出しましたが、明らかに VPN サーバーで停止しています。対処方法がまったくわかりません。どなたか助けてください。:) サーバー構成とクライアント構成は次のとおりです。はい、クライアント側は Windows 7 と 10 です。

サーバー構成。

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

クライアント構成。注: サーバーの IP は非表示になっています。

client
dev tun
proto udp
remote 107.155.1x4.1x2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\OVPN\\ca.crt"
cert "C:\\OVPN\\client1.crt"
key "C:\\OVPN\\client1.key"
ns-cert-type server
comp-lzo
verb 3

クライアント側から Google の DNS サーバー 8.8.8.8 をテストしてみましたが、まだ動作しません。問題は、インターネットに分岐するサーバー側のインターフェースの一部にあると思います。何か提案がある方は、役に立つアドバイスをお願いします。

「以下のコマンドの出力を追加してください: sysctl net.ipv4.ip_forward、iptables-save、ip route show。クライアントでは、route print を実行してください。 – rda」

1) の出力sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 1

2) の出力ip route show

10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.8.0.0/24 via 10.8.02 dev tun0
default dev venet0 scope link

3) そして出力iptables-save

*mangle
:PREROUTING ACCEPT [241673:29858781]
:INPUT ACCEPT [232866:29385621]
:FORWARD ACCEPT [8803:472884]
:OUTPUT ACCEPT [250884:4018010]
:POSTROUTING ACCEPT [259688:40653794]
COMMIT
*filter
:INPUT ACCEPT [232866:29385621]
:FORWARD ACCEPT [8804:472884]
:OUTUPUT ACCEPT [250884:40180910]
COMMIT
*nat
:PREROUTING ACCEPT [20668:1262348]
:POSTROUTING ACCEPT [14826:1006759]
:OUTPUT ACCEPT [10970:791257]
COMMIT
*raw
:PREROUTING ACCEPT [241673:29858781]
:OUTPUT ACCEPT [250884:40180910]
COMMIT

6月11日

問題はルーティング テーブルにあると考えています。コマンド - を実行したところnetstat -nr、驚いたことに、ルーティング テーブルに VPN 使用時のみに割り当てられている奇妙な IP アドレスがあることがわかりました。**

では、見てみましょう:

カーネル IP ルーティング テーブル (注: ルーティング テーブルのパラメータは列ごとに次のようになります (!)。例: ルーティング テーブルの IP は、最初の列の最初のパラメータをすべて取得します。最後の 3 つのパラメータは、MSS Window irttルーティング テーブルの各値で同じです。

Destination face 10.8.0.2 un0 10.8.0.0 un0 0.0.0.0 enet0 

Gateway face 0.0.0.0 un0 10.8.0.2 un0 0.0.0.0 enet0 

Genmask face 255.255.255.255 un0 255.255.255.0 un0 0.0.0.0 enet0 

Flags face UH un0 UG un0 U enet0 

MSS Window irtt face 0 0 0 un0 0 0 0 un0 0 0 0 enet0

6月15日

やあ、友よ!また返信してくれてありがとう!

出力は次のようにip route showなります。

10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1 10.8.0.0/24 via 
10.8.0.2 dev tun0 default dev venet0 scope link 

VPS での次のコマンドの出力は次ip route get 8.8.8.8のとおりです (注: IP アドレスは非表示です)。

8.8.8.8 dev venet0 src 107.155.1x4.1x2 
    cache mtu 1500 advmss 1460 hoplimit 64

クライアント側では、このコマンドを使用しましたroute print。IP アドレスの非常に大きなページが取得されましたが、この問題を解決するためにここで何が重要なのかわかりません...

次のステップは何ですか?

本当に、本当に助かりました。

6月15日更新

route printWindows クライアントでのコマンドの出力は次のようになります。

IPv4 Route Table
===========================================================================
Active routes:
Network address        Subnet mask        Gateway          Interface   Metric
          0.0.0.0          0.0.0.0     192.168.88.1   192.168.88.208     20
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
     192.168.50.0    255.255.255.0         On-link      192.168.50.1    276
     192.168.50.1  255.255.255.255         On-link      192.168.50.1    276
   192.168.50.255  255.255.255.255         On-link      192.168.50.1    276
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266
     192.168.88.0    255.255.255.0         On-link    192.168.88.208    276
   192.168.88.208  255.255.255.255         On-link    192.168.88.208    276
   192.168.88.255  255.255.255.255         On-link    192.168.88.208    276
    192.168.100.0    255.255.255.0         On-link     192.168.100.1    276
    192.168.100.1  255.255.255.255         On-link     192.168.100.1    276
  192.168.100.255  255.255.255.255         On-link     192.168.100.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link    192.168.88.208    276
        224.0.0.0        240.0.0.0         On-link     192.168.100.1    276
        224.0.0.0        240.0.0.0         On-link      192.168.50.1    276
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link    192.168.88.208    276
  255.255.255.255  255.255.255.255         On-link     192.168.100.1    276
  255.255.255.255  255.255.255.255         On-link      192.168.50.1    276
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266
===========================================================================
Permanent routes:

6月17日更新

やあ、サーバー上で NAT を有効にするコマンドを使ってみたけど、残念ながらまたもや機能しない。出力はip route show以前と同じだ:

10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.8.0.0/24 via 10.8.0.2 dev tun0
default dev venet0 scope link

あなたが教えてくれたコマンドは、スムーズに実行されましたが、結果は得られませんでした。つまり、新しい IP ルートが出力に表示されません。同じルートをさまざまな方法で追加しようとしましたが、マスクを /16 から /24 に変更しても、何も起こりませんでした。

唯一の重要奇妙に感じたのは、クライアント側で OVPN GUI を実行したところ、インターネットが機能していないことがわかったのですが、最初から Facebook ページが読み込まれ始めるのですが、google.com や linkedin.com などの他のページ、またはその他の Web サイトは開かないということです...

私の VPS プロバイダーに関するいくつかの小さな事柄について、FAQ ページで次のことが述べられています。

**22
    Do you support TUN/TAP? IPSEC?

    Yes, TUN/TAP and IPSEC are enabled on all VPS by default.**


**2
What kind of virtualization is offered/used?

We utilize OpenVZ on our infrastructure. If you require KVM virtualization we recommend SpeedyKVM.**

これは一体何の問題なのでしょうか?そして、どうすればこれを克服できるのでしょうか?

改めて、本当にありがとうございました!

答え1

サーバー上で NAT を有効にする必要があります。

静的 IP アドレスの SNAT:

iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o <if> -j SNAT --to <ip>

または、動的に割り当てられた IP アドレスがある場合は、次を使用しますMASQUERADE(低速):

iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o <if> -j MASQUERADE

その間

  • <if>外部インターフェースの名前です(つまりvenet0
  • <ip>外部インターフェースのIPアドレスです

関連情報