Centos7搭建SS以及加速配置的操作記錄 (轉載)
原文地址https://www.cnblogs.com/kevingrace/p/8495424.html
部署 Shadowsocks之前,對它做了一個簡單的瞭解,下面先介紹下。
一道隱形的牆
眾所周知,天朝區域網通過 GFW (中國防火牆長城:英文名稱Great Firewall of China,簡寫為Great Firewall,縮寫GFW)隔離了我們與外界的交流,當然,這個隔離並非完全隔離,而是選擇性的,天朝不希望你上的網站就直接阻斷。每一個網路請求都是有資料特徵的,不同的協議具備不同的特徵,比如 HTTP/HTTPS 這類請求,會很明確地告訴 GFW 它們要請求哪個域名;再比如 TCP 請求,它只會告訴 GFW 它們要請求哪個 IP。
GFW 封鎖包含多種方式,最容易操作也是最基礎的方式便是域名黑白名單,在黑名單內的域名不讓通過,IP 黑白名單也是這個道理。如果你有一臺國外伺服器不在 GFW 的黑名單內,天朝區域網的機器就可以跟這一臺機器通訊。那麼一個FQ的方案就出來了:境內裝置與境外機器通訊,境內想看什麼網頁,就告訴境外的機器,讓境外機器代理抓取,然後送回來,我們要做的就是保證境內裝置與境外裝置通訊時不被 GFW 懷疑和竊聽。
ssh tunnel 是比較具有代表性的防竊聽通訊隧道,通過 ssh 與境外伺服器建立一條加密通道,此時的通訊 GFW 會將其視作普通的連線。由於大家都這麼玩,GFW 著急了,於是它通過各種流量特徵分析,漸漸的能夠識別哪些連線是 ssh 隧道,並嘗試性的對隧道做干擾,結果還是玩不過 GFW,眾多隧道紛紛不通。
Shadowsocks簡單介紹
shadowsocks是一種基於Socks5代理方式的網路資料加密傳輸包,並採用Apache許可證、GPL、MIT許可證等多種自由軟體許可協議開放原始碼。shadowsocks分為伺服器端和客戶端,在使用之前,需要先將伺服器端部署到伺服器上面,然後通過客戶端連線並建立本地代理。目前包使用Python、C、C++、C#、Go語言等程式語言開發。
Shadowsocks簡單介紹執行原理:
Shadowsocks的執行原理與其他代理工具基本相同,使用特定的中轉伺服器完成資料傳輸。在伺服器端部署完成後,使用者需要按照指定的密碼、加密方式和埠使用客戶端軟體與其連線。在成功連線到伺服器後,客戶端會在使用者的電腦上構建一個本地Socks5代理。瀏覽網路時,網路流量會被分到本地socks5代理,客戶端將其加密之後傳送到伺服器,伺服器以同樣的加密方式將流量回傳給客戶端,以此實現代理上網。具體而言,Shadowsocks 將原來 ssh 建立的 Socks5 協議拆開成 Server 端和 Client 端,兩個端分別安裝在境外伺服器和境內裝置上。
Client 和 Server 之間可以通過多種方式加密,並要求提供密碼確保鏈路的安全性。
Shadowsocks部署記錄:
伺服器資訊:阿里雲上購買的海外機器(專用網路):172.12.166.194(內網)、147.174.190.138(外網,購買機器時選擇的固定頻寬的公網),Centos7.4。
1)安裝依賴包
1 |
[[email protected] src]
# yum install wget curl curl-devel zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel git autoconf libtool gcc swig python-devel
|
2)下載setuptools
1 2 3 4 5 6 7 8 9 10 11 |
[[email protected] ~]
# cd /usr/local/src/
[[email protected] src]
# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
[[email protected]owsocks-server src]
# tar -zvxf setuptools-19.6.tar.gz
[[email protected] src]
# python2.7 setup.py build
---------------------------------------------------------------
溫馨提示:
如果失敗,提示說需要zlib-devel依賴,RuntimeError: Compression requires the (missing) zlib module
[[email protected] src]
# yum install -y zlib-devel
---------------------------------------------------------------
[[email protected] src]
# python2.7 setup.py build
[[email protected] src]
# python2.7 setup.py install
|
3)安裝pip(Centos7下一般預設自帶pip)
1 2 3 4 5 |
[[email protected] ~]
# yum -y install epel-release
[[email protected] ~]
# yum -y install pip python-pip
對安裝好的pip進行升級
pip
install
–upgrade pip
|
4)安裝shadowsocks
1 |
[[email protected] ~]
# pip install shadowsocks
|
5)安裝加密的依賴包
1 |
[[email protected] ~]
# pip install M2Crypto
|
6)安裝完成後,需要建立服務端配置檔案/etc/shadowsocks.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[[email protected] ~]
# cat /etc/shadowsocks.json
{
"server"
:
"172.21.166.194"
,
//
專用網路下,這裡只能寫私網ip,不能寫外網ip,否則啟動失敗!或者寫0.0.0.0
"server_port"
: 8388,
//ss
伺服器的埠,預設是8388埠。
"password"
:
"AS3e123jK"
,
//ss
伺服器密碼
"timeout"
: 30,
"method"
:
"aes-256-cfb"
//ss
伺服器配置的加密方式
}
溫馨提示:
1)如果出現報錯: Cannot assign requested address, 請將 server 換成 0.0.0.0, 然後重新啟動上面的命令。
2)也可以進行多使用者設定,已經測試可用!
{
"server"
:
"172.21.166.194"
,
"port_password"
: {
"8388"
:
"AS3e123jK"
,
"8389"
:
"wang2"
,
"8390"
:
"zhang3"
},
"timeout"
:30,
"method"
:
"aes-256-cfb"
,
"fast_open"
:
false
}
|
7)服務端ssserver並啟動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[[email protected] ~]
# vim /etc/systemd/system/ssserver.service
[Unit]
Description=ssserver
[Service]
TimeoutStartSec=0
ExecStart=
/usr/bin/ssserver
-c
/etc/shadowsocks
.json
[Install]
WantedBy=multi-user.target
[[email protected] ~]
# systemctl enable ssserver
[[email protected] ~]
# systemctl start ssserver
[[email protected] ~]
# systemctl restart ssserver
為了檢查 shadowsocks 服務是否已成功啟動,可以執行以下命令檢視服務的狀態:
[[email protected] ~]
# systemctl status ssserver -l
● ssserver.service - ssserver
Loaded: loaded (
/etc/systemd/system/ssserver
.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-03-02 23:53:31 CST; 1min 55s ago
Main PID: 10623 (ssserver)
CGroup:
/system
.slice
/ssserver
.service
└─10623
/usr/bin/python2
/usr/bin/ssserver
-c
/etc/shadowsocks
.json
Mar 02 23:53:31 shadowsocks-server systemd[1]: Started ssserver.
Mar 02 23:53:31 shadowsocks-server systemd[1]: Starting ssserver...
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: INFO: loading config from
/etc/shadowsocks
.json
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 WARNING warning: your timeout 60 seems too short
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 INFO loading libcrypto from libcrypto.so.10
Mar 02 23:53:32 shadowsocks-server ssserver[10623]: 2018-03-02 23:53:32 INFO starting server at 0.0.0.0:8388
[[email protected] ~]
# lsof -i:8388
COMMAND PID USER FD TYPE DEVICE SIZE
/OFF
NODE NAME
ssserver 1958 root 3u IPv4 56980 0t0 TCP *:8388 (LISTEN)
ssserver 1958 root 4u IPv4 56981 0t0 UDP *:8388
|
8)安裝銳速
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
銳速是一款強大的伺服器加速軟體。由於這個軟體只針對特定的linux核心才能使用,所以需要修改伺服器系統的核心。
Centos6和CentOS7 一鍵更換核心,完成後會重啟
[[email protected] src]
# uname -r
3.10.0-514.26.2.el7.x86_64
[[email protected] src]
# wget --no-check-certificate https://blog.asuhu.com/sh/ruisu.sh
[[email protected] src]
# bash ruisu.sh
[[email protected] src]
# wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install
=======================================================================
或者執行下面命令,然後重啟伺服器後,核心即將改變
# rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force
=======================================================================
重啟伺服器後,再次檢視,核心就更換了
[[email protected] src]
# uname -r
3.10.0-229.1.2.el7.x86_64
接著安裝銳速
[[email protected] src]
# wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
.......
=================================================
作業系統:CentOS
發行版本:7.3
核心版本:3.10.0-229.1.2.el7.x86_64
位數:x64
銳速版本:3.10.61.0
=================================================
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 96179 100 96179 0 0 63855 0 0:00:01 0:00:01 --:--:-- 63863
我們用的銳速安裝檔案是 3.10.60.0 ,但這個核心沒有匹配的,請選擇一個接近的銳速版本號嘗試,不確保一定可用,(如果有版本號重複的選項隨便選一個就可以)
1:3.10.61.12
2:3.11.20.4
請選擇銳速版本號(輸入數字序號):
2
........
[Running Configuration]
accif eth0
acc 1
advacc 1
advinacc 1
wankbps 10000000
waninkbps 10000000
csvmode 0
subnetAcc 0
maxmode 1
pcapEnable 0
最後啟動銳速:
[[email protected] src]
# service serverSpeeder start
ServerSpeeder is running!
|
至此,Shadowsocks伺服器端的配置完成。同時注意,在如上的Shadowsocks部署機器上要關閉iptables防火牆(如果開啟iptables防火牆,則需要放開8388埠訪問)。同時,在阿里雲控制檯上,要在這臺機器的安全規則裡設定好8388埠(如果設定了多使用者登入,就要將所涉及到的幾個埠都在防火牆裡放行,如上面設定的8388、8389、8390)。
==================shadowsocks客戶端的配置=====================
1)windows客戶機通過桌面shadowsocks客戶端工具代理FQ
本地安裝Shadowsocks客戶端,通過客戶端工具進行代理FQ。Shadowsocks 4.0.8客戶端的網盤下載:https://pan.baidu.com/s/1NgU9Ia_4rz8nEwPEwu0l2Q (提取密碼:iycw)
客戶端安裝後,配置如下:
配置好後,在電腦右下角找到ss客戶端圖示,注意,剛開始客戶端圖示是灰色,即代理沒啟用狀態!
點選代理啟用
接著發現客戶端就是白色,即代理啟用狀態了
本地客戶機要確保到Shadowsocks部署機的8388埠能通(提前是:8388埠的服務已啟動,防火牆和安全規則都設定好),即"telnet 147.174.190.138 8388"只要通了,那麼再以上客戶端啟用狀態下,就可以正常FQ了(如下,FQ訪問facebook)。注意:最好關閉360安全衛士,以避免阻礙ShadowsocksFQ服務!
2)iphone手機FQ
在APP Store上下載"SS SSR-Shadowrocket"軟體(該軟體有時會在app store裡下架,可以到"蘋果助手"裡下載),然後按照上面shadowsocks伺服器端的設定資訊進行配置即可實現FQ。
3)linux客戶機(如Centos)通過shadowsocks實現代理FQ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
linux客戶機(這裡以centos為例)同樣需要安裝SS服務,並啟動SS的客戶端程式。其中:
centos6下的SS服務端程式是ss-server,客戶端程式是ss-
local
。
centos7下的SS服務端程式是ssserver,客戶端程式是sslocal。
=====================================================================================================
1)如果客戶機是centos6,則操作如下:
首先記得關閉客戶機的iptables和selinux
a)安裝配置ss的客戶端
[[email protected] ~]
# yum install -y git
[[email protected] ~]
# wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
[[email protected] ~]
# tar zvxf 1.5.5.tar.gz
[[email protected] ~]
# cd pip-1.5.5/
|