


實(shí)例講解搭建Linux系統(tǒng)的VPS的步驟
添加時(shí)間:2016-1-30 20:49:17
添加:
思海網(wǎng)絡(luò)
虛擬專用服務(wù)器(英語(yǔ):Virtual private server,縮寫為 VPS),是指通過虛擬化技術(shù)在獨(dú)立服務(wù)器中運(yùn)行的專用服務(wù)器。每個(gè)使用VPS技術(shù)的虛擬獨(dú)立服務(wù)器擁有各自獨(dú)立的公網(wǎng)IP地址、操作系統(tǒng)、硬盤空間、內(nèi)存空間、CPU資源等,還可以進(jìn)行安裝程序、重啟服務(wù)器等操作,與運(yùn)行一臺(tái)獨(dú)立服務(wù)器完全相同。
VPS服務(wù)器是一項(xiàng)服務(wù)器虛擬化和自動(dòng)化技術(shù),它采用的是操作系統(tǒng)虛擬化技術(shù)。操作系統(tǒng)虛擬化的概念是基于共用操作系統(tǒng)內(nèi)核,這樣虛擬服務(wù)器就無需額外的虛擬化內(nèi)核的過程,因而虛擬過程資源損耗就更低,從而可以在一臺(tái)物理服務(wù)器上可以實(shí)現(xiàn)更多的虛擬化服務(wù)器。這些VPS服務(wù)器以最大化的效率共享硬件、軟件許可證以及管理資源。每一個(gè)VPS服務(wù)器均可獨(dú)立進(jìn)行重啟,并擁有自己的root訪問權(quán)限、用戶、IP地址、內(nèi)存、過程、文件、應(yīng)用程序、系統(tǒng)函數(shù)庫(kù)以及配置文件。
前期準(zhǔn)備
需要購(gòu)買一臺(tái)擁有 root 權(quán)限的 VPS ,我選擇的是 搬瓦工 ,當(dāng)時(shí)購(gòu)買的是 512 M 內(nèi)存 5 G SSD,500 G 流量/月, 9.99 刀每年,但是好像現(xiàn)在這種低價(jià)套餐已經(jīng)結(jié)束了。有意的朋友可以看一下其他的套餐或者別的公司的 VPS。有的朋友說 DigitalOcean 的速度非常快,看YouTube直接 1440p,但是我還沒測(cè)試過,目前搬瓦工的速度能滿足我的需求,而且 DO 的價(jià)格比較昂貴。
服務(wù)器購(gòu)買后,安裝 CentOS7,因?yàn)橐韵陆坛潭际腔?CentOS7 的,安裝新的 OS 后,搬瓦工會(huì)告訴你 SSH 的端口和 root 的密碼,這些是自己無法自定義的,要記住了如果實(shí)在忘了也可以重置 root 密碼,或者直接使用搬瓦工提供的在線SSH登錄來操作也可,就是反應(yīng)比較慢,所以我們以后還是常用 ssh 登錄來配置 VPS ,Mac 下直接使用終端就好,win 下自行尋找一個(gè) ssh 工具就好。
登錄 ssh 的命令:
復(fù)制代碼代碼如下:
$ ssh -p vps 端口號(hào) root@vpsIP 地址
登錄上以后就相當(dāng)于在本地操作一樣了,你可以使用各種 Linux 命令來操作了。
配置防火墻
如果 SSH 無法登錄,那說明防火墻關(guān)閉了 SSH 端口,需要通過在線 SSH 登錄進(jìn)去關(guān)閉防火墻重新配置。
清除防火墻配置
復(fù)制代碼代碼如下:
$ iptables -F
清除 iptabels 所有表項(xiàng),同時(shí) nat 設(shè)置也沒了,但是我們后續(xù)的腳本里會(huì)配置的,不用擔(dān)心。如果 SSH 登錄正常就不用管防火墻。
安裝 firewalld
復(fù)制代碼代碼如下:
$ yum install firewalld firewall-config
$ systemctl start firewalld
P.S. 我在安裝完 firewalld 之后然后啟動(dòng)服務(wù)的時(shí)候一直顯示失敗,然后重啟了一遍服務(wù)器就可以正常的啟動(dòng) firewalld 服務(wù)了,有類似情況的朋友可以重啟一下服務(wù)器。
修改 SSH 端口
復(fù)制代碼代碼如下:
$ vi /usr/lib/firewalld/services/ssh.xml
會(huì)出現(xiàn)以下的內(nèi)容:
復(fù)制代碼代碼如下:
<?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"/>
</service>
將 port=”22”,修改成搬瓦工提供給你的端口號(hào),然后重載 firewalld 就 OK。
vi 的命令: 按 “i” 是編輯模式,編輯后按 “esc” 退出編輯模式,然后按 Shift 輸入“:” 和 “wq” 保存退出 vi。
復(fù)制代碼代碼如下:
$ firewall-cmd --permanent --add-service=ssh
$ firewall-cmd --reload
OK,現(xiàn)在準(zhǔn)備工作都已就緒,安裝了源,安裝配置了防火墻,下一步開始搭建服務(wù)了。
搭建 Shadowsocks 服務(wù)
這個(gè)服務(wù)是最簡(jiǎn)單也是最常用的。
安裝組件
復(fù)制代碼代碼如下:
$ yum install m2crypto python-setuptools
$ easy_install pip
$ pip install shadowsocks
安裝時(shí)部分組件需要輸入 Y 確認(rèn)。小內(nèi)存 VPS 可以分別安裝組件。
安裝完成后配置服務(wù)器參數(shù)
復(fù)制代碼代碼如下:
$ vi /etc/shadowsocks.json
寫入如下配置:
復(fù)制代碼代碼如下:
{
"server":"0.0.0.0",
"server_port":8388,
"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 客戶端默認(rèn)的端口號(hào)。
如果需要修改端口,需要在防火墻里打開響應(yīng)的端口,用 firewalld 操作就比較簡(jiǎn)單了:
復(fù)制代碼代碼如下:
$ vi /usr/lib/firewalld/services/ss.xml
下面代碼粘貼到里面:
復(fù)制代碼代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SS</short>
<deion>Shadowsocks port
</deion>
<port protocol="tcp" port="自定義ss端口號(hào)"/>
</service>
保存退出,然后重啟 firewalld 服務(wù):
復(fù)制代碼代碼如下:
$ firewall-cmd --permanent --add-service=ss
$ firewall-cmd --reload
運(yùn)行命令,啟動(dòng) Shadowsocks 服務(wù)
運(yùn)行下面的命令:
復(fù)制代碼代碼如下:
$ ssserver -c /etc/shadowsocks.json
至此 shadowsocks 搭建完成,shadowsocks 已經(jīng)可以使用,如果你沒有過高的要求,下面的步驟可以省略,下面是后臺(tái)運(yùn)行 Shadowsocks 的步驟。
安裝 supervisor 實(shí)現(xiàn)后臺(tái)運(yùn)行
運(yùn)行以下命令下載 supervisor:
復(fù)制代碼代碼如下:
$ yum install python-setuptools
$ easy_install supervisor
然后創(chuàng)建配置文件:
復(fù)制代碼代碼如下:
$ echo_supervisord_conf > /etc/supervisord.conf
修改配置文件:
復(fù)制代碼代碼如下:
$ vi /etc/supervisord.conf
在文件末尾添加:
復(fù)制代碼代碼如下:
[program:ssserver]command = ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
startsecs=3
設(shè)置 supervisord 開機(jī)啟動(dòng),編輯啟動(dòng)文件:
復(fù)制代碼代碼如下:
$ vi /etc/rc.local
在末尾另起一行添加:
復(fù)制代碼代碼如下:
$ supervisord
保存退出(和上文類似)。另 centOS7 還需要為 rc.local 添加執(zhí)行權(quán)限:
復(fù)制代碼代碼如下:
$ chmod +x /etc/rc.local
至此運(yùn)用 supervisord 控制 Shadowsocks 開機(jī)自啟和后臺(tái)運(yùn)行設(shè)置完成。重啟服務(wù)器即可。
搭建 Strongswan 實(shí)現(xiàn)在 iOS 上連接 VPN
如果你只是需要在 Android, PC 上使用 VPN,那可以直接忽略此章內(nèi)容, Shadowsocks 已經(jīng)可以非常完美的幫助以上設(shè)備實(shí)現(xiàn)翻墻。 但是由于 iOS 上無法使用 Shadowsocks 所以需要使用 Strongswon 建立 IPsecVPN。
下載并編譯 Strongswan
首先我們來編譯 Strongswan, 因?yàn)橹苯佑?yum install 的不能用,原因不明,所以直接下載源碼和依賴包進(jìn)行編譯。
下載 Strongswan 的源碼:
復(fù)制代碼代碼如下:
$ wget http://download.strongswan.org/strongswan.tar.gz && tar zxvf strongswan*
$ cd strongswan*
下載編譯源碼所需要的依賴包(小內(nèi)存請(qǐng)分批下載):
復(fù)制代碼代碼如下:
$ yum install -y make gcc gmp-devel openssl openssl-devel
因搬瓦工是 OpenVZ 的所以用下面的命令來進(jìn)行配置:
復(fù)制代碼代碼如下:
$ ./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
非 OpenVZ 的請(qǐng)用下面的命令來進(jìn)行配置:
復(fù)制代碼代碼如下:
./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
開始編譯源代碼:
復(fù)制代碼代碼如下:
$ make && sudo make install
沒有錯(cuò)誤出現(xiàn)后,可進(jìn)行下一步。
生成證書
建立個(gè)臨時(shí)目錄來生成證書:
復(fù)制代碼代碼如下:
$ mkdir ~/ipsec_cert && cd ~/ipsec_cert
生成服務(wù)器證書
用的是 iOS8 不越獄翻墻方案中創(chuàng)建的腳本。SERVER 換成自己的域名或IP 都行。
復(fù)制代碼代碼如下:
$ wget https://gist.githubusercontent.com/songchenwen/14c1c663ea65d5d4a28b/raw/cef8d8bafe6168388b105f780c442412e6f8ede7/server_key.sh
$ sh server_key.sh SERVER
生成客戶端證書
同樣是他的腳本,這個(gè)腳本還會(huì)生成一個(gè) .p12 證書,這個(gè)證書需要導(dǎo)入到 iOS 里,USER 換成你自己的用戶名 EMAIL 換成你自己的 email。
復(fù)制代碼代碼如下:
$ wget https://gist.githubusercontent.com/songchenwen/14c1c663ea65d5d4a28b/raw/54843ae2e5e6d1159134cd9a90a08c31ff5a253d/client_key.sh
$ sh client_key.sh USER EMAIL
復(fù)制證書到 /etc/ipsec.d/
Strongswan 需要的是 cacerts/strongswanCert.pem 、certs/vpnHostCert.pem 、private/vpnHostKey.pem 這三個(gè)文件。
復(fù)制代碼代碼如下:
$ 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 將這兩個(gè)證書同步到本地,然后通過郵件發(fā)送到 iOS 設(shè)備中并安裝
復(fù)制代碼代碼如下:
$ scp -P ssh端口 root@服務(wù)器ip:~/ipsec_cert/****.p12 ~/
$ scp -P ssh端口 root@服務(wù)器ip:~/ipsec_cert/cacerts strongswanCert.pem ~/
配置 Strongswan
編輯 /etc/ipsec.conf:
復(fù)制代碼代碼如下:
$ vi /etc/ipsec.conf
將下面的代碼覆蓋原有內(nèi)容:
復(fù)制代碼代碼如下:
config setup
### strictcrlpolicy=yes
### uniqueids = replace
### charondebug="cfg 2, dmn 2, ike 2, net 0" ### 要看Log時(shí),取消注釋本行
conn %default
keyexchange=ikev1
dpdaction=hold
dpddelay=600s
dpdtimeout=5s
lifetime=24h
ikelifetime=240h
rekey=no
left=emptyzone.github.io ### 這里換成你登錄 VPN 用的域名或 IP,與生成證書時(shí)相同
leftsubnet=0.0.0.0/0
leftcert=vpnHostCert.pem
leftsendcert=always
right=%any
rightdns=8.8.8.8
rightsourceip=10.0.0.0/8
conn CiscoIPSec
rightauth=pubkey
rightauth2=xauth
auto=add
編輯 /etc/ipsec.secrets, 創(chuàng)建用戶名及密碼:
復(fù)制代碼代碼如下:
vi /etc/ipsec.secrets
將以下內(nèi)容添加進(jìn)去:
復(fù)制代碼代碼如下:
### 驗(yàn)證用戶所需的信息
### 用戶名 : EAP "密碼"
: RSA vpnHostKey.pem
你的用戶名 : EAP "你的密碼"
使用 firewalld 配置防火墻
用 firewalld 開放 4500、500 端口和 esp 協(xié)議。
復(fù)制代碼代碼如下:
$ vi /usr/lib/firewalld/services/ipsec.xml
內(nèi)容如下:
復(fù)制代碼代碼如下:
<?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"/>
</service>
然后輸入以下命令后,至此整個(gè)搭建過程就結(jié)束了。
復(fù)制代碼代碼如下:
$ firewall-cmd --permanent --add-service=ipsec
$ firewall-cmd --permanent --add-masquerade
$ firewall-cmd --reload
把下載的兩個(gè)證書用 email 發(fā)送到你的 iOS 上,安裝后建立個(gè) VPN 連接,選 IPsec,使用證書,選擇你的用戶名的證書即可,登錄下試試吧。
關(guān)鍵字:Linux、系統(tǒng)、VPS、服務(wù)器
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解