html模版【轉】如何使用 VPS 搭建 VPN 呢?
2017-06-07 14:08來源:玄魂工作室

原標題:【轉】如何使用 VPS 搭建 VPN 呢?

原文鏈接:http://www.jianshu.com/p/2f51144c35c9

迫於在國內上網困難的壓力,擁有自己的 VPS 在其搭建自己的 VPN 就顯得很有必要瞭。但在實際的搭建過程中走瞭很多的彎路掉進瞭很多的坑,所以寫瞭這篇博文為瞭以後 VPS 重裝系統的時候可以少走彎路,也給有意自己搭建 VPS 的朋友一點指示。 —— 由Pober_Wong分享

迫於在國內上網困難的壓力,擁有自己的 VPS 在其搭建自己的 VPN 就顯得很有必要瞭。但在實際的搭建過程中走瞭很多的彎路掉進瞭很多的坑,所以寫瞭這篇博文為瞭以後 VPS 重裝系統的時候可以少走彎路,也給有意自己搭建 VPS 的朋友一點指示。

前期準備

需要購買一臺擁有 root 權限的 VPS ,我選擇的是 搬瓦工 ,當時購買的是 512 M 內存 5 G SSD,500 G 流量/月, 9.99 刀每年,但是好像現在這種低價套餐已經結束瞭。有意的朋友可以看一下其他的套餐或者別的公司的 VPS。有的朋友說 DigitalOcean 的速度非常快,看YouTube直接 1440p,但是我還沒測試過,目前搬瓦工的速度能滿足我的需求,而且 DO 的價格比較昂貴。

下圖是搭瞭 SS 和 IPsec VPN 服務的使用情況,僅供參考



使用情況

服務器購買後,安裝 CentOS7,因為以下教程都是基於 CentOS7 的,我建議安裝 Centos 7 x86_64 的版本,安裝新的 OS 後,搬瓦工會告訴你 SSH 的端口和 root 的密碼,這些是無法自定義的,要記住瞭。如果忘記瞭 root 密碼,可以使用搬瓦工提供的在線SSH登錄來重置 root 密碼。我是直接使用 ssh 登錄來配置 VPS ,Mac 下直接使用終端就好,win 下自行尋找一個 ssh 工具就好。

登錄 ssh 的命令:

$ ssh -p vps 端口號 root@vpsIP 地址

登錄上以後就相當於在本地操作一樣瞭,你可以使用各種Linux命令來操作瞭

配置防火墻

如果 SSH 無法登錄,那說明防火墻關閉瞭 SSH 端口,需要通過在線 SSH 登錄進去關閉防火墻重新配置

清除防火墻配置 $ iptables -F

清除 iptabels 所有表項,同時nat設置也沒瞭,但是我們後續的腳本裡會配置的,不用擔心。如果 SSH 登錄正常就不用管防火墻。

P.S. 這一步很重要,所以務必執行此命令。

安裝 firewalld

$ yum install firewalld firewall-config$ systemctl start firewalld

P.S. 我在安裝完 firewalld之後然後啟動服務的時候一直顯示失敗,然後重啟瞭一遍服務器就可以正常的啟動 firewalld服務瞭,

有類似情況的朋友可以重啟一下服務器

修改 SSH 端口 $ vi /usr/lib/firewalld/services/ssh.xml

會出現一下的內容

?xml version="1.0" encoding="utf-8"? service short SSH /short deion Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful. /deion port protocol="tcp" port="22" /port /service

將 port="22",修改成搬瓦工提供給你的端口號,然後 reload firewalld就 OK

vi 的命令: 按 "i" 是編輯模式,編輯後按 "esc" 退出編輯模式,然後按 Shift 輸入 ":wq" 保存退出vi.

$ firewall-cmd --permanent --add-service=ssh$ firewall-cmd --reload

OK,現在準備工作都已就緒,安裝瞭源,安裝配置瞭防火墻,下一步開始搭建服務器瞭。

P.S. 如果使用 firewall-cmd 命令顯示 FirewallD is not running,請重啟服務器可以解決此問題。

搭建 Shadowsocks 服務

Shadowsocks 感覺是目前最穩定,簡單,方便的搭建 VPN 的服務

安裝組件 $ yum install m2crypto python-setuptools$ easy_install pip$ pip install shadowsocks

安裝時部分組件需要輸入 Y 確認。小內存 VPS 可以分別安裝組件。

安裝完成後配置服務器參數 $ vi /etc/shadowsocks.json

寫入如下配置:

{ "server":"0.0.0.0", "server_port":443, "local_address": "127.0.0.1", "local_port":1080, "password":"mypassword", "timeout":300, "method":"aes-256-cfb", "fast_open": false, "workers": 1}

將上面的 mypassword 替換成你的密碼, server_port 也是可以修改的,例如 443 是 Shadowsocks 客戶端默認的端口號

如果需要修改端口,需要在防火墻裡打開響應的端口,用 firewalld操作就比較簡單瞭

$ vi /usr/lib/firewalld/services/ss.xml

下面代碼粘貼到裡面

?xml version="1.0" encoding="utf-8"? service short SS /short deion Shadowsocks port /deion port protocol="tcp" port="443" /port /service

port 可自定義,但是需要跟上面的 server_port 對應起來,保存退出,然後重啟 firewalld服務

$ firewall-cmd --permanent --add-service=ss$ firewall-cmd --reload

運行命令,啟動 Shadowsocks 服務

運行下面的命令

$ ssserver -c /etc/shadowsocks.json

至此shadowsocks搭建完成,shadowsocks已經可以使用,如果你沒有過高的要求,下面的步驟可以省略,下面是後臺運行 Shadowsocks 的步驟。

安裝 supervisor 實現後臺運行

運行一下命令下載 supervisor

$ easy_install supervisor

然後創建配置文件

$ echo_supervisord_conf /et台中商標申請查詢c/supervisord.conf

修改配置文件

$ vi /etc/supervisord.conf

在文件末尾添加

[program:ssserver]command = ssserver -c /etc/shadowsocks.jsonautostart=trueautorestart=truestartsecs=3

設置 supervisord 開機啟動,編輯啟動文件

$ vi /etc/rc.local

在末尾另起一行添加

$ supervisord

保存退出(和上文類似)。另 CentOS7 還需要為 rc.local 添加執行權限

$ chmod +x /etc/rc.local

至此運用 supervisord 控制 Shadowsocks 開機自啟和後臺運行設置完成。重啟服務器即可

P.S. 如果當你在運行 supervisord 命令時出現以下的錯誤提示

$ [root@zhgqthomas ~]# supervisord/usr/lib/python2.7/site-packages/supervisor-3.2.0-py2.7.egg/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.'Supervisord is running as root and it is searching 'Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.For help, use /usr/bin/supervisord -h

那是因為 supervisord 已經啟動瞭,重復啟動就會出現上面的錯誤提示.

搭建 Strongswan 實現在 iOS 上連接 VPN

如果你隻是需要在 Android, PC 上使用 VPN,那可以直接忽略此章內容, Shadowsocks 已經可以非常完美的幫助以上設備實現翻墻。 但是由於 iOS 上無法使用 Shadowsocks 所以需要使用 Strongswon 建立 IPsecVPN。

下載並編譯 Strongswan

首先我們來編譯 Strongswan, 因為直接用 yum install 的不能用,原因不明,所以直接下載源碼和依賴包進行編譯

下載 Strongswan 的源碼

$ wget http://download.strongswan.org/strongswan.tar.gz tar zxvf strongswan* $ cd strongswan*

下載編譯源碼所需要的依賴包(小內存請分批下載)

$ yum install -y make gcc gmp-devel openssl openssl-devel

因搬瓦工是 OpenVZ 的所以用下面的命令來進行配置

$ ./configure --sysconfdir=/etc --disable-sql --disable-mysql --disable-ldap --enable-dhcp --enable-eap-identity --enable-eap-mschapv2 --enable-md4 --enable-xauth-eap --enable-eap-peap --enable-eap-md5 --enable-openssl --enable-shared --enable-unity --enable-eap-tls --enable-eap-ttls --enable-eap-tnc --enable-eap-dynamic --enable-addrblock --enable-radattr --enable-nat-transport --enable-kernel-netlink --enable-kernel-libipsec

開始編譯源代碼

$ make sudo make install

沒有錯誤出現後,可進行下一步

使用 PSK + XAUTH 形式連接 Strongswan

使用該方式 iOS 設備無需證書,隻需要使用賬戶名,密碼及密鑰的情況下即可連接.

配置 Strongswan

編輯 /etc/ipsec.conf

$ vi /etc/ipsec.conf

將下面的代碼覆蓋原有內容

config setup # strictcrlpolicy=yes uniqueids=never #允許多設備同時在線 # charondebug="cfg 2, dmn 2, ike 2, net 0" #要看Log時,取消註釋本行conn IPsec_xauth_psk keyexchange=ikev1 left=SERVER #這裡換成你登錄 VPN 用的域名或 IP leftauth=psk leftsubnet=0.0.0.0/0 right=%any rightauth=psk rightauth2=xauth rightsourceip=10.0.0.0/24 auto=add

編輯 /etc/ipsec.secrets, 創建用戶名及密碼

vi /etc/ipsec.secrets

將一下內容添加進去

#驗證用戶所需的信息: PSK "SECRET" # 這裡 SECRET 可隨意替換成你想要的密鑰你的用戶名 : XAUTH "你的密碼"

啟動 Strongswan 服務

以上設置完成後, 運行下面的命令,就可以去 iOS 中設置瞭

$ ipsec start

在 iOS 中選擇添加 IPSec VPN 設置,然後輸入服務器的域名或者 IP 地址,用戶名,密碼及上面的密鑰就可以連接成功瞭

使用 RSA + .pem 證書形式來連接 Strongswan

該方法需要生成證書並通過 Email 傳到 iOS 設備上方可,然後再通過賬戶名及密碼來連接.閑麻煩的朋友可直接忽略此方式.

生成證書

建立個臨時目錄來生成證書

$ mkdir ~/ipsec_cert cd ~/ipsec_cert

生成服務器證書

用的是 iOS8 不越獄翻墻方案中創建的腳本。SERVER換成自己的域名或IP 都行

$ wget https://gist.githubusercontent.com/songchenwen/14c1c663ea65d5d4a28b/raw/cef8d8bafe6168388b105f780c442412e6f8ede7/server_key.sh$ sh server_key.sh SERVER

生成客戶端證書

同樣是他的腳本,這個腳本還會生成一個 .p12 證書,這個證書需要導入到 iOS 裡,USER 換成你自己的用戶名 EMAIL 換成你自己的 email。運行命令的時候會提示輸入一個密碼,記住所輸入的密碼,在將此證書安裝到 iPhone 設備的時候會提示輸入該密碼.

$ wget https://gist.githubusercontent.com/songchenwen/14c1c663ea65d5d4a28b/raw/54843ae2e5e6d1159134cd9a90a08c31ff5a253d/client_key.sh$ sh client_key.sh USER EMAIL

復制證書到 /etc/ipsec.d/

Strongswan 需要的是 cacerts/strongswanCert.pem certs/vpnHostCert.pem private/vpnHostKey.pem 這三個文件

$ sudo cp cacerts/strongswanCert.pem /etc/ipsec.d/cacerts/strongswanCert.pem $ sudo cp certs/vpnHostCert.pem /etc/ipsec.d/certs/vpnHostCert.pem$ sudo cp private/vpnHostKey.pem /etc/ipsec.d/private/vpnHostKey.pem

同步客戶端證書到本地

客戶端需要的是 .p12 證書和 cacerts/strongswanCert.pem 將這兩個證書同步到本地,然後通過郵件發送到 iOS 設備中並安裝.

P.S. 以下命令需要在本地的命令終端運行,而不是在 VPS 裡運行.

$ scp -P ssh端口 root@服務器ip:~/ipsec_cert/****.p12 ~/$ scp -P ssh端口 root@服務器ip:~/ipsec_cert/cacerts/strongswanCert.pem ~/

配置 Strongswan

編輯 /etc/ipsec.conf

$ vi /etc/ipsec.conf

將下面的代碼覆蓋原有內容

config setup # strictcrlpolicy=yes uniqueids=never #允許多設備同時在線 # charondebug="cfg 2, dmn 2, ike 2, net 0" #要看Log時,取消註釋本行conn %default keyexchange=ikev1 dpdaction=hold dpddelay=600s dpdtimeout=5s lifetime=24h ikelifetime=240h rekey=no left=SERVER #這裡換成你登錄 VPN 用的域名或 IP,與生成證書時相同 leftsubnet=0.0.0.0/0 leftcert=vpnHostCert.pem leftsendcert=always right=%any rightdns=8.8.8.8 rightsourceip=10.0.0.0/24conn CiscoIPSec rightauth=pubkey rightauth2=xauth auto=add

編輯 /etc/ipsec.secrets, 創建用戶名及密碼

vi /etc/ipsec.secrets

將一下內容添加進去

#驗證用戶所需的信息#用戶名 : EAP "密碼": RSA vpnHostKey.pem你的用戶名 : EAP "你的密碼"

使用 firewalld 配置防火墻

不管選擇哪種方式連接,都需要用 firewalld 開放 4500、500 端口和 esp 協議

$ vi /usr/lib/firewalld/services/ipsec.xml

?xml version="1.0" encoding="utf-8"? service short IPsec /short deion Internet Protocol Security (IPsec) incorporates security for network transmissions directly into the Internet Protocol (IP). IPsec provides methods for both encrypting data and authentication for the host or network it sends to. If you plan to use a vpnc server or FreeS/WAN, do not disable this option. /deion port protocol="ah" port="" port protocol="esp" port="" port protocol="udp" port="500" port protocol="udp" port="4500" /port /port /port /port /service

然後輸入一下命令後,至此整個搭建過程就結束瞭。

$ firewall-cmd --permanent --add-service=ipsec$ firewall-cmd --permanent --add-masquerade$ firewall-cmd --reload

開機自啟 Strongswan $ vi /etc/rc.local

文件末尾添加

ipsec start

把下載的兩個證書用 email 發送到你的 iOS 上,安裝後建立個 VPN 連接,選 IPsec,使用證書,選擇你的用戶名的證書即可,登錄下試試吧。如有任何疑問請將您的疑問留在評論區。

使用 FinalSpeed 來加速翻墻

使用 FinalSpeed 來加速 Shadowsocks,可以達到飛一般的翻墻體驗。看 Youtube 的 1080P 視頻毫無壓力。以下是使用 FinalSpeed 的註意事項:

FinalSpeed必須服務端和客戶端同時配合使用,否則沒有任何加速效果.

服務器建議至少256M內存

openvz架構隻支持udp協議 (故搬瓦工的 VPS 隻支台灣註冊商標持 udp 協議)

服務端可以和銳速共存,互不影響

在搬瓦工的 VPS 安裝 FinalSpeed FinalSpeed支持 Linux,Centos,Ubuntu,Debian. 輸入以下命令,完成一鍵安裝

$ wget http://fs.d1sm.net/finalspeed/install_fs.sh$ chmod +x $ install_fs.sh./install_fs.sh 2 1 | tee install.log

安裝完後運行以下命令來查看日志

$ tail -f /fs/server.log

出現以下內容說明安裝成功

FinalSpeed server start success.

如出現錯誤,請到這裡查看解決方法。

修改端口

FinalSpeed 默認使用 150 的端口,故需要使用 firewalld開放 150 端口

$ vi /usr/lib/firewalld/services/fs.xml

將以下內容復制進去

?xml version="1.0" encoding="utf-8"? service short FinalSpeed /short deion FinalSpeed /deion port protocol="tcp" port="150" port protocol="udp" port="150" /port /port /service $ firewall-cmd --permanent --add-service台灣商標註冊查詢=fs$ firewall-cmd --reload

設置開機啟動 $ vi /etc/rc.local

在末尾加入

sh /fs/start.sh

有需要的朋友也可以加入每天晚上 3 點自動重啟功能

$ crontab -e 0 3 * * * sh /fs/restart.sh

FinalSpeed 客戶端的配置

關於客戶端的配置教程,就不重復造輪子瞭,請到這裡查看。

以上就是搭建自己 VPN 服務器的全部內容,這次媽媽再也不用擔心我在 Youtube 看 1080P 的視頻瞭~

-----------------------------正文到此結束---------------------------------------------------------------------------

之前也給大傢推薦過各種科學 ** 上網的方法,最近用著都不是很爽,所以才轉載瞭此文,自己的用著才最舒服。

如果有願意合夥購買vps的 可以留言,我隻需要8個人,每個人100元一年。具體購買哪的vps還沒定。

明天開始,未來三天會到廈門自由行,有廈門的朋友可以約啊。

-------------------------------------------------------------------------------------------------------



歡迎關註--玄魂工作室

kali linux 2.0 虛擬機通過宿主機代理實現科學上網-第二彈

情人節,吃瞭這把狗糧

多謝轉發!

責任編輯:

聲明:本文由入駐搜狐號的作者撰寫,除搜狐官方賬號外,觀點僅代表作者本人,不代表搜狐立場。 閱讀 () 程序設計

宏碁

客戶端

台灣電動床工廠 電動床

台灣電動床工廠 電動床


arrow
arrow

    rfx153l9t9 發表在 痞客邦 留言(0) 人氣()