Linux下的使用(以ubuntu16.04為例)
系統環境: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
}
啟動ss客戶端
前兩步很簡單,可是有人就納悶了安裝好了不知道怎麼用,其實可以用sslocal -help 來檢視幫助就知道了
sslocal -c /etc/shadowsocks.json
一條命令代理就可以啟動了。
這裡僅僅是啟動了shadowsocks還是不行的,我們還需要設定相關的代理。
轉換HTTP代理
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,有些文章中是這樣配置的,但是本人親測這樣無法連線上網。
Ubuntu開機後自動執行
現在可以科學上網了,可是每次開機都要手動開啟終端輸入一條命令,雖然這條命令並不長,但是每次都去手動輸入,顯得自己很low,而且關掉終端代理就關閉了。
寫個指令碼
我們可以在比如/home下新建個檔案叫做shadow.sh,在裡面寫上我們啟動ss客戶端需要的命令,然後儲存即可。
#!/bin/bash
#shadow.sh
sslocal -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下,就可以了。
相關文章
- RabbitMQ的使用--以topic路由為例MQ路由
- Bert下載和使用(以bert-base-uncased為例)
- MIPS Linux 下新增系統呼叫,以Linux kernel 2.6.18為例.Linux
- 給VMware下的Linux擴充套件磁碟空間(以CentOS6.5為例)Linux套件CentOS
- python so.environ的使用(以pysolc為例)Python
- 資料集的使用-以CIFAR10為例
- Linux(以CentOS 7為例)下安裝、解除安裝、啟動OpenOfficeLinuxCentOS
- 遊戲中的意識流(下)——以Supercell系列遊戲為例遊戲
- jstat命令檢視jvm的GC情況 (以Linux為例)JSJVMGCLinux
- 批量下載檔案(以xxx網站為例)網站
- Mac下配置Java開發環境以Java 8 為例MacJava開發環境
- 建立索引的原則-以innodb為例索引
- 在flutter使用多色圖示,以iconfont為例Flutter
- 以流動債務為例論指標的合理使用指標
- Java 中使用 Session 物件(以登入、退出功能為例)JavaSession物件
- 【Linux】詳解六種配置Linux環境變數的方法(以centos為例)Linux變數CentOS
- 如何在Linux系統下安裝Android-Studio的詳細步驟(以Ubuntu為例)LinuxAndroidUbuntu
- 以Aliyun體驗機為例,從零搭建LNMPR環境(下)LNMP
- 以 Toast 為例講解 Vue 元件的概念ASTVue元件
- 以opencv為例說明cmake中的findpackage()OpenCVPackage
- 以QT為例談環境搭建QT
- 模擬登陸——以github為例Github
- 讓 FCKeditor 支援多使用者Web環境(以PHP為例)WebPHP
- 遞迴程式的漸近分析(以分治為例)遞迴
- 手機遊戲流失使用者研究報告:以王者榮耀和和平精英為例(附下載)遊戲
- 【譯】MongoDb vs Mysql—以NodeJs為例MongoDBMySqlNodeJS
- php 傳送郵件(以QQ為例)PHP
- 如何模擬在丟包情況下的傳輸測試(以鐳速為例)
- 開發者以Band of Defenders為例談遊戲的系統建造遊戲
- [譯] 以 Vue 為例,解釋 JavaScript 的反應性VueJavaScript
- 對Java萬用字元的個人理解(以集合為例)Java字元
- 以IT行業為例,談談KAIZEN模式的優勢!行業AI模式
- 【詳解】以 ASP.NET Core 為例的CI/CDASP.NET
- 以pytorch的forward hook為例探究hook機制PyTorchForwardHook
- RDF 和 SPARQL 初探:以維基資料為例
- Flutter 外掛開發:以微信SDK為例Flutter
- 網頁效能 CaseStudy:以 PressOne 首頁為例網頁
- Hadoop 2.6 以WordCount為例理解Map ReduceHadoop