OpenVPN需要TUN支援,大多數VPS預設都沒有開啟,你可以用這個命令檢測:cat
/dev/net/tun
如果返回資訊為:cat: /dev/net/tun: File descriptor in bad state
說明正常,否則發個ticket給VPS公司讓他們幫忙開吧。
如果你需要連上OpenVPN後能訪問互連網,還需要iptables_nat模組支援,用這個命令檢測:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -ovenet0 -j MASQUERADE
找出來了原來在這裡:/usr/share/openvpn/easy-rsa
大家應該都是一樣的。
我們把easy-rsa這個檔案夾移出來,用命令:cp -R/usr/share/openvpn/easy-rsa /etc/openvpn/
我們把easy-rsa這個檔案夾移出來,用命令:cp -R/usr/share/openvpn/easy-rsa /etc/openvpn/
然後cd/etc/openvpn/easy-rsa/2.0進入,產生OpenVPN需要的認證。
用vi vars來編輯環境變數,這裡涉及到編輯器vi的用法,不會用就自己google一下。
把最後幾行根據實際情況修改:
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GD"
export KEY_CITY="GZ"
export KEY_ORG="Black-Xstar Net Empire"
export KEY_EMAIL="webmaster [at] black-xstar.com"
儲存後運行. vars設定生效。
接下來運行./build-caserver建立憑證授權單位。
建立CA之後來產生伺服器憑證,輸入./build-key-server
server
輸入命令:./build-key client1,這裡的client1是用戶端名稱,如果第二個就是client2了。
最後產生Diffie Hellman參數:./build-dh,這個需要一點時間的。
首先cd ..回到上一級目錄,然後vi server.conf建立一個設定檔,輸入下面內容:
port 443
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
到這裡為止OpenVPN就配置好了,接下來我們設定外網訪問。
輸入vi /etc/sysctl.conf開始編輯,找到net.ipv4.ip_forward= 0改成net.ipv4.ip_forward=
1儲存。然後執行sysctl -p這個命令。
輸入iptables -t nat -A POSTROUTING -s10.8.0.0/24 -j SNAT --to-source 1.2.3.4添加規則,注意最後1.2.3.4改成你的VPS的IP地址。
iptables -F POSTROUTING -t nat
iptables -t nat -A POSTROUTING -s10.8.0.0/24 -j SNAT --to-source
`curl http://169.254.169.254/2008-02-01/meta-data/local-ipv4 -q`
完成後用/etc/init.d/iptables save儲存iptables設定,然後/etc/init.d/iptables
restart重新啟動下。
把OpenVPN添加到開機啟動,用vi
/etc/rc.local進入編輯,在後面加入/usr/sbin/openvpn--config /etc/openvpn/server.conf &這一行。
然後在下載回來keys檔案夾裡面找到ca.crt、client1.crt和client1.key這三個檔案,放到C:\Program
Files\OpenVPN\config裡面。
同時在這裡面建立一個名字為“client1.ovpn”的文字檔,輸入下面內容:
client
dev tun
proto tcp
remote 1.2.3.4 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
把第四行的1.2.3.4換成VPS的IP地址,然後儲存。