前段時間一直在忙open***的事情,現在手頭有臺aws服務器,打算利用起來。
如何利用呢?利用這臺服務器進行科學上網,實際需求如下。
一、實際需求
在國內搜索技術文章,如果使用baidu的話,你懂的。因此就轉向google,但是由於衆所周知的原因,我們無法訪問google。
剛好現在有一臺aws的服務器,就想弄個shadowsocks服務器進行科學上網。
爲什麼使用shadowsocks進行科學上網呢?
shadowsocks有如下特點:
快速(異步I/O和事件驅動程序)
安全(所有的流量都經過加密算法加密,支持自定義算法)
支持移動客戶端(專爲移動設備和無線網絡優化)
跨平臺(可運行於包括PC,Mac,手機(Android和iOS)和路由器(OpenWrt)在內的多種平臺上)
開源、易於維護
二、安裝shadowsocks
aws服務器,我使用的是亞馬遜的自己的系統Amazon Linux AMI,如下:
cat /etc/system-release
仔細對比了下,其實這個系統就是centos系統,不過應該是經過定製的。
有關shadowsocks的安裝,我們可以通過以下網址進行查看,如下:https://github.com/shadowsocks/shadowsocks
centos下安裝命令如下:
yum install -y python-setuptools
easy_install pip
pip install shadowsocks
如果是ubuntu系統,安裝命令如下:
sudo apt-get -y install python-gevent python-pip
sudo pip install shadowsocks
sudo apt-get -y install python-m2crypto
三、配置shadowsocks
無論是centos系統還是ubuntu系統,shadowsocks配置都是一樣的。
shadowsocks安裝完畢後,可以查看使用ssserver命令進行查看。如下:
ssserver -h
如果沒有ssserver命令的話,一般是在/usr/local/bin目錄下,如下:
which ssserver
我們只需要把/usr/local/bin加入到/etc/profile文件中即可。
創建shadowsocks目錄,並創建其配置文件,如下:
mkdir /etc/shadowsocks
vim /etc/shadowsocks/config.json
{
"server":"0.0.0.0",
"server_port":1194,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"asto!@#123456",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false,
"workers": 1
}
shadowsocks配置文件的內容,我就不做過多的介紹了,很簡單的。
配置文件弄好後,我們現在來啓動shadowsocks,如下:
ssserver -c /etc/shadowsocks/config.json -d start
netstat -tunlp
如果要停止shadowsocks服務的話,我們可以使用如下命令:
ssserver -c /etc/shadowsocks/config.json -d stop
四、連接shadowsocks服務
shadowsocks服務器搭建完畢後,我們現在來客戶端連接shadowsocks服務器。
shadowsocks客戶端有Windows版本和Linux版本,我們分別介紹其使用方法。
4.1 Windows版本
windows版本,我們可以從如下網址進行下載,如下:
https://github.com/shadowsocks/shadowsocks-windows/releases
下載完畢後,雙擊Shadowsocks.exe,如下:
在彈出的窗口中,填入Shadowsocks服務器的IP、Shadowsocks服務器端口已經密碼,就可以連接Shadowsocks服務器,如下:
正確連接Shadowsocks服務器後,我們就可以進行科學上網了。
如下:
當然我們也可以設置爲全局代理,如下:
通過上圖,我們可以看到目前我們的IP地址就是aws服務器所在的地址了。
我們也可以把這個代理讓局域網中的其他用戶使用,如下:
經過這樣設置後,只要局域網中的機器連接我這臺機器的1080端口,就可以使用代理了。
4.2 Linux版本
linux版本的shadowsocks客戶端,我們一般選用cow這款軟件。下載地址如下:
https://github.com/cyfdecyf/cow
安裝就比較簡單了,執行如下命令即可:
curl -L git.io/cow | bash
安裝完畢後,我們來修改.cow/rc文件,如下:
grep -vE "^#|^$" .cow/rc
這樣的話,局域網的其他機器只要連接該機器的7778端口就可以進行科學上網了。
其實,我們還有一個類似這個軟件MEOW,地址如下:
https://github.com/renzhn/MEOW
使用方法和cow一樣,再次就不做講解。
4.3 Linux設置全局代理
我們再來講解一個在linux環境使用全局代理的方案,因爲有時候我們的軟件更新需要使用到國外的站點,但是衆所周知的原因,不能更新。那麼我們就只能通過***或者其他方式進行更新軟件了,這樣比較麻煩。
今天介紹一個比較方便的方法,就是把所有本機的請求都通過代理走。配置如下:
vim /etc/profile
http_proxy=192.168.1.180:1080
export http_proxy
https_proxy=192.168.1.180:1080
export https_proxy
ftp_proxy=192.168.1.180:1080
export ftp_proxy
以上幾行命令的意思是:無論是http、https、ftp請求,我們都讓它通過192.168.1.180:1080的通過,而192.168.1.180:1080就是我們局域網的代理服務器的地址。
source /etc/profile
然後我們在使用curl cip.cc進行測試如下:
curl cip.cc
通過上圖,我們可以很清楚的看到目前這臺linux服務器已經使用的是shadowsocks服務器地址。
如果是代理服務器需要用戶名和密碼的話,可以使用如下格式:export http_proxy=http://username:password@ip:port
這樣就達到了我們對linux使用全局代理的功能。