系統環境:Ubuntu 16.04
linux不同的發行版執行的命令如下(最好在root下運行以下命令,原因我下面會說明):
Debian / Ubuntu: apt-get install python-pip pip install shadowsocks
CentOS: yum install python-setuptools && easy_install pip pip install shadowsocks
sudo vim /etc/shadowsocks.json //這里的json文件是自己創建的,不是系統自帶
配置文件的內容大致如下:
{ “server”:”服務器的ip”, “server_port”:服務器的端口, “local_address”:”127.0.0.1”, “local_port”:1080, “passWord”:”密碼”, “timeout”:300, “method”:”aes-256-cfb”, “fast_open”:false }
前兩步很簡單,可是有人就納悶了安裝好了不知道怎么用,其實可以用sslocal -help 來查看幫助就知道了
sslocal -c /etc/shadowsocks.json
一條命令代理就可以啟動了。 這里僅僅是啟動了shadowsocks還是不行的,我們還需要設置相關的代理。
Shadowsocks默認是用Socks5協議的,對于Terminal的get,wget等走Http協議的地方是無能為力的,所以需要轉換成Http代理,加強通用性,這里使用的轉換方法是基于Polipo的。
輸入命令安裝Polipo: sudo apt-get install polipo
修改配置文件: sudo gedit /etc/polipo/config
將下面的內容整個替換到文件中并保存:
# This file only needs to list configuration variables that deviate # from the default values. See /usr/share/doc/polipo/examples/config.sample # and "polipo -v" for variables you can tweak and further information. logSyslog = false logFile = "/var/log/polipo/polipo.log" socksParentPRoxy = "127.0.0.1:1080" socksProxyType = socks5 chunkHighMark = 50331648 objectHighMark = 16384 serverMaxSlots = 64 serverSlots = 16 serverSlots1 = 32 proxyAddress = "0.0.0.0" proxyPort = 8123重啟Polipo: /etc/init.d/polipo restart
驗證代理是否正常工作: export http_proxy=”http://127.0.0.1:8123/” curl www.google.com
如果正常,就會返回抓取到的Google網頁內容。
另外,在瀏覽器中輸入http://127.0.0.1:8123/便可以進入到Polipo的使用說明和配置界面。
在Firefox中
preference->advanced->network->connection->settings中選擇手動設置代理,并將http代理設置為127.0.0.1 端口8123 (就是之前第二步配置的port) 做到這步應該就能通過shadowsocks訪問了,但我遇到的電腦還是不行,后來將http代理下面的“Use this proxy server for all protocols(將代理應用到所有協議)”這個也鉤上才可以了。
PS.如果跳過第二步,直接在第三部中配置http代理設置為127.0.0.1 端口1080,有些文章中是這樣配置的,但是本人親測這樣無法連接上網。
現在可以科學上網了,可是每次開機都要手動打開終端輸入一條命令,雖然這條命令并不長,但是每次都去手動輸入,顯得自己很low,而且關掉終端代理就關閉了。
寫個腳本
我們可以在比如/home下新建個文件叫做shadow.sh,在里面寫上我們啟動ss客戶端需要的命令,然后保存即可。
#!/bin/bash#shadow.shsslocal -c /etc/shadowsocks.json看可不可以我們到終端執行命令 sh /home/shadow.sh,如果成功的話會有信息輸出的。你也可以到瀏覽器去試試。這個時候你雖然輸入的少了,可是關了終端還是會掉的,我們可以讓他在后臺運行,nohup sh /home/shadow.sh &。
加入開機運行
這里我們需要在/etc下編輯一個叫rc,local的文件,需要root權限,在終端先su獲取root權限。
這里問題來了,因為我們要開機啟動,要使用root權限來執行前面寫好的腳本,但如果你的shawdocks不是在root下裝的話,執行腳本是就會報錯: “Traceback (most recent call last): File “/home/gaoxw/.local/bin/sslocal”, line 7, in from shadowsocks.local import main” 使用sudo安裝還是會報上面這個錯誤。
如果你有root帳號的話,然后vim /etc/rc.local編輯,在exit之前輸入nohup bash /home/shadow.sh>/home/d.txt & 保存。
這個時候你可以reboot重啟了,測試下看看能不能后臺自動運行,重啟你可以先去看下我們要他輸出d.txt,你竟然發現是 /home/shadow.sh line 3 :sslocal: command not found,打開瀏覽器果然是無法鏈接代理服務器。
經過一番搜索我們發現遠離linux是找不到sslocal這條命令?需要添加路徑,我們發現sslocal和ssserver這兩個命令是被存在 /usr/local/bin下面的,其實不用去profile添加了,直接把這兩個文件移動到/bin下,就可以了。
新聞熱點
疑難解答