Vps

無法瀏覽 ipv4 網站 (OpenVPN )

  • November 20, 2013

我在我的 VPS (OpenVZ - Ubuntu 12.04) 上設置了一個 openVPN 隧道。

問題是當我連接到vpn時,我只能瀏覽支持ipv6的網站,比如google。IPv4 站點未載入(沒有錯誤,只是無限期地等待)。

http://whatismyv6.com/報告我有一個 ipv6 地址,所以我想這就是問題所在。

伺服器配置:

dev tun  
server 10.8.0.0 255.255.255.0  
ifconfig-pool-persist ipp.txt  
ca /etc/openvpn/easy-rsa/keys/ca.crt  
cert /etc/openvpn/easy-rsa/keys/server.crt  
key /etc/openvpn/easy-rsa/keys/server.key  
dh /etc/openvpn/easy-rsa/keys/dh1024.pem  
push "route 10.8.0.0 255.255.255.0"  
push "dhcp-option DNS 8.8.8.8"  
push "dhcp-option DNS 8.8.4.4"  
push "redirect-gateway def1"  
comp-lzo  
persist-tun  
persist-key  
status openvpn-status.log  
log /var/log/openvpn.log  
verb 3

客戶端配置:

client  
remote xx.xx.xx.xx 1194  
dev tun  
comp-lzo  
ca ca.crt  
cert client1.crt  
key client1.key  
redirect-gateway def1  
verb 3  

我已經用這個命令配置了 NAT:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to xx.xx.xx.xx

誰能解釋我如何讓它工作(強制 ipv4?)

我在另一個 vps 上遇到了同樣的問題,我也在另一個客戶端上嘗試過(所有 Windows 7)。

切換到 tcp 埠解決了這個問題。我不知道為什麼…(防火牆打開)

當它們通過 vpn 時,您的 vpn 伺服器似乎無法重新路由發往 Internet 的數據包。當您使用“reroute-gateway def1”指令,從而強制所有來自客戶端的外部 ipv4 流量通過 vpn 隧道時,您需要結合您的 vpn 伺服器來促進重新路由功能。

我猜您可以直接連接到 ipv6 站點,因為 ipv6 沒有通過 vpn 建立隧道,如您的配置所示。

您可以: a) 設置您的 vpn 伺服器網路以正確重新路由到網際網路。這在實踐中很優雅,但使用給定的資訊來描述會很混亂(有點變成了我現在沒有時間討論的對話)。我已經與 openvpn 一起完成了它,可以確認它是一個可行的設計選項,並且 NAT 是你的朋友 :-)

b) 在您的 openvpn 伺服器後面或上配置一個網路代理,並告訴您的客戶端網路瀏覽器使用它。這很容易,我碰巧有一個方便的 squid 配置,只是作為靈感。了解您可以選擇使用任何您喜歡的網路代理伺服器,這只是我曾經使用過的配置,現在就在我的硬碟上。它用於使用“reroute-gateway def1”完全解決您的openvpn問題。

要安裝和配置 squid,請使用 Internet 上眾多優秀的方法之一。這是 squid.conf 中需要的一個簡單更改,以使其正常工作:

打開 /etc/squid/squid.conf

改變

http_port 3128

指示

http_port 8080 # This really could be any port you choose, just open your firewall to permit it from the vpn tunnel to your squid.

更改acls:

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.20.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

而是反映您的實際本地網路:

acl localnet src 10.8.0.0/24   # Your internal LAN

取消註釋該行:

# http_access deny to_localhost

保存 /etc/squid/squid.conf

啟動 squid,當你連接你的 vpn 客戶端時,配置你的 web 瀏覽器以使用 http 代理,給它你的 squid 機器的 IP 地址和埠 8080(或你選擇的任何埠)。

祝你好運,希望它能讓你的船浮起來!

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