之前提到過在 CentOS 下配置 VPN 伺服器,今天順便提一下在 ubuntu 下如何配置 VPN 代理服務,在 Ubuntu 下配置 VPN 相比 CentOS 基本相同,這裡我用一台 DigitalOcean 的 VPS 作為測試伺服器,選擇它的原因很簡單,因為 VPS 可完全控制 PPP 設備,可以不需要發工單要求客服開通。操作系統是 Ubuntu Server12.04.3。所有操作都在 sudo su 後執行。
1. 確認 PPP 設備或 TUN 設備是否安裝(DigitalOcean VPS 的跳過)
ls /dev/ppp
ls /dev/net/tun
或#
cat /dev/ppp
cat /dev/net/tun
如果提示 “No such file or directory” 或 “No such device or address” 則表示未安裝。發工單要求開通即可 2. 安裝 pptpd
apt-get install pptpd
3. 安裝成功後修改 /etc/pptd.conf 文件,配置 VPN 的 IP 地址 寫入
localip XXX.XXX.XXX.XXX
remoteip XXX.XXX.XXX.XXX-XXX
#參考配置
#localip 10.0.0.1
#remoteip 10.0.0.100-200
localip 為本地 IP,即本機 IP remoteip 為遠程主機會被分配的 IP, 通常設置為連續 ip 段
4. 修改 /etc/ppp/options.pptpd 文件,完成 VPS 伺服器 DNS 修改
ms-dns 8.8.8.8
ms-dns 8.8.4.4
5. 編輯 /etc/ppp/chap-secrets,配置 VPN 連接的使用者 格式為
username pptpd password *
username 表示使用者名稱 pptpd 表示服務名,一般默認 password 表示密碼 * 星號表示所有 IP 都可以接入
6. 打開 IP 轉發,修改 /etc/sysctl.conf,打開 ipv4 轉發 打開文件後找到以下內容,並修改。沒有請添加。
#打開 IP 轉發
net.ipv4.ip_forward=1
#打開 SYN cookies 功能,避免 SYN 洪水攻擊,多使用者連接時推薦打開
net.ipv4.tcp_syncookies=0
生效對 /etc/sysctl.conf 的修改(可選)
sysctl -p
7. 打開防火牆
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
8. 啟動 pptp vpn 服務
service pptpd start
DigitalOcean 提供的教程: https://www.digitalocean.com/community/articles/how-to-setup-your-own-vpn-with-pptp