在”VPS初體驗及自架VPN服務“一文中我就推薦過如何架設 PPTP VPN 服務的文章,而此文則在原文基礎上作了一些修改和補充,並增加了”
如何在 Linux 上串連 PPTP VPN ” 這一節。
本文所涉及的運行環境:遠程伺服器為 VPSLink 上低配置 Xen VPS ( 注意,OpenVZ VPS 是不能安裝 PPTP VPN 的),Linux 系統為 Ubuntu 9.04 ,本機伺服器為安裝在 VirtualBox 虛擬機器中的 Ubuntu Server 9.10 。
1. 如何快速搭建一個VPN(pptp)
# 安裝伺服器端軟體
apt-get install pptpd
# 配置IP位址範圍,編輯/etc/pptpd.conf,在最後添加如下地址:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
# 這兩句設定了當外部電腦通過pptp聯結到vpn後所能拿到的ip位址範圍和伺服器的ip地址設定。
# 增加一個使用者,編輯/etc/ppp/chap-secrets,在下面增加類似的條目:
username pptpd password *
# 重啟pptpd服務
/etc/init.d/pptpd restart
# 編輯:/etc/ppp/options,在裡面找一下”ms-dns”項目:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
#允許轉寄,編輯/etc/sysctl.conf,看一下net.ipv4.ip_forward參數是不是1,或直接執行以下命令來查看
sysctl net.ipv4.ip_forward
# 如果輸出為 0 的話就要修改 /etc/sysctl.conf 中的 net.ipv4.ip_forward ,把 0 改為1,然後執行以下命令。
sysctl -p
# 最後,運行一下這條命令來開啟iptables的轉寄支援:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
# 並把這兩條加入到 /etc/rc.local 中的 exit 0 行前面,這樣重啟後就無需再執行了。
# 好了,PPTP VPN 到此就架設好了,你現在可以用 Windows 內建的 VPN 串連工具來串連了,這個應該非常簡單。那麼下面我再說說如何在 Ubuntu 上手工配置 PPTP VPN 串連吧。
2 .如何在 Linux 上串連 PPTP VPN
# 安裝 Linux 上的 pptp 用戶端
apt-get install pptp-linux
# 把下面兩行加入 /etc/rc.local , 放在 exit 0 這一行的前面
/usr/sbin/pptpsetup –create lable –server ip –username username –passwordpassword –encrypt
/usr/sbin/pppd call lable
# 說明:這兩行命令是最簡便的建立 PPTP 串連方式。
Label: 使用者自訂
IP: 是 VPN 的 IP 位址
Username 及 Password :登入 VPN 的使用者名稱和密碼
# 把下面兩行加入 /etc/ppp/ip-up 中,刪除預設閘道及把 VPN 伺服器作為預設閘道,也就是改變路由策略,把所以傳輸串流量通過 VPN 線路來走。
/sbin/route add default gw 192.168.0.1
/sbin/route del default gw 原來的網關 // 原來的預設閘道地址可通過 route 命令來擷取
# 另外,如果你想把此伺服器作為閘道伺服器的話,那就按照前面架設 PPTP VPN 一節中的方式,設定 net.ipv4.ip_forward 參數來開啟包轉寄。並把下面兩行加入到 /etc/rc.local 中。
/sbin/iptables -t nat -A POSTROUTING -s 內網IP/24 -o ppp0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
# 重啟伺服器,你可以用 ifconfig 看一下,會多出一個 ppp0 的網路介面了。另外,你可以 traceroute twitter.com 看一下,是否通過 ppp0 的網關出去的,如果是的話,就說明工作正常。
# 注意:在作閘道伺服器的時候,建議使用 Google 的 DNS ,國內很多 DNS 被汙染了,無法正常解析 Twitter 等網站。
# 修改 /etc/resolv.conf 中,改為如下兩行
nameserver 8.8.8.8
nameserver 8.8.4.4