Openvpn クライアントはサーバーに ping できますが、www.google.com に ping できません。

Openvpn クライアントはサーバーに ping できますが、www.google.com に ping できません。

私はUbuntu VPSでOpenvpnを設定しました。これ

これは私のクライアントですroute -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         122.84.124.1    0.0.0.0         UG    0      0        0 ppp0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
122.84.124.1    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ppp0
183.181.60.117  122.84.124.1    255.255.255.255 UGH   0      0        0 ppp0

クライアントではできますping 10.8.0.1が、それ以外はインターネットにアクセスできないようです。試してみましたがmtr 8.8.8.8

Host                          Lost% ...
1. 10.8.0.1                    0.0% ...
2. ???

サーバー上にいる場合はmtr 8.8.8.8パスが表示されます。

何が間違っていたのかアドバイスをいただけますか? ありがとうございます!

答え1

サーバー上で NAT とルーティングを正しく設定する必要があります。

mtrサーバーからは正常に動作しているが、クライアントからは動作していない場合は、サーバーに次のようなルールを追加する必要があります。

# iptables -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <public IP of server>

また、サーバー上でルーティングが有効になっていることを確認してください。

# sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 0   <<< disabled
# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1   <<< enabled

または、起動時に有効にしたい場合は、net.ipv4.ip_forwardを 1 に変更し/etc/sysctl.confて を実行しますsysctl -p

答え2

念のため、他の回答はすでに承認されているようですが、役に立つかもしれません...

@petrusの回答は、あなたがすべてのインターネットトラフィックがOpenVPNネットワークを通過するそれがあなたが望むことなら、そうするべきです。

ただし、OpenVPN が必要なのは、そのネットワーク内のリソース (ファイル サーバーやイントラネットなど) にアクセスするときだけで、一般的なインターネット アクセスには通常のインターネット接続を使用するのが一般的です。この場合、クライアント マシンにすべてのトラフィックを OpenVPN 経由でルーティングしないように指示することで、速度を上げることができます。これを行う方法は、クライアント ソフトウェアと OS によって異なりますが、OpenVPN クライアントでこの問題が発生し、不要な速度低下を引き起こしていることに気付いたので、この方法を提案することにしました。

関連情報