2017年9月1日 星期五

ubuntu Shadowsocks python

Shadowsocks


    Shadowsocks 的使用,必須在防火牆外部建立一個Shadowsocks server,並在本基端使用支援Shadowsocks 的本機端才可以連到外部的Shadowsocks server,因為Shadowsocks 走的是socks5協定,所以不管是瀏覽器還是應用程式要使用Shadowsocks 都需要透過本機端的port(預設1080)來連線,所以local ip 跟port主要是以要連上Shadowsocks  server的裝置為主,基本上測試過 GCP 、linode、中華VPS 都有效。



安裝:


apt-get install python-pip
pip install shadowsocks

設定:


     我通常會在自己使用者底下建立ss資料夾方便管理,如果只希望用預設值的可以參考官網,請依照自己習慣動態調整設定黨位置,但注意最後一定要用 root權限,因為會呼叫一個加密lib。

mkdir ssserver
vim  ssserver.json
   server 可以打上自己的IP,port也可以自己換,官網有提到有些VPS 服務商會讓非正常port降速可以使用常見port處理,如:443,3389...,但我會建議超過1024比較好,password為倒是時候連線的密碼,method是加密方法,aes-256-cfb 是通常ubuntu server都會內建,至於會不會被破我就不得而知了

ssserver.json


{

   "server": "0.0.0.0",
   "server_port": 8388,
   "local_address": "127.0.0.1",
   "local_port": 1080,
   "password": "passwd",
   "timeout": 300,
   "method": "aes-256-cfb",
   "fast_open": false
}

執行:

-C 是指定設定黨位置,--log-file 是特別指定log黨寫入位置,-d是背景執行
sudo ssserver -c ~/sserver/ssserver.json --log-file ~/ssserver/ss.log -d start
只要出現2017-09-01 16:07:34 INFO     starting server at 0.0.0.0:8388就是正常了,可以嘗試客戶端連線

關閉:

sudo ssserver -c ~/sserver/ssserver.json --log-file ~/ssserver/ss.log -d stop

windows client

Android client

問題排除:

    通常遇到最大的問題都是被防火牆擋住了,如果是GCP 跟中華除了本機端的防火牆之外還要特別設定外部防火牆指到VPS,而本機防火牆通常是iptable 跟 ufw。

檢查是否為防火牆擋住:

sudo cat /var/etc/syslog

如果看到[UFW BLOCK] 就是被ufw擋住了:


sudo ufw allow 8388/tcp

如果看到 iptables_INPUT_denied 就是被iptables擋住了:

1.檢查防火牆:

 sudo iptables -L -n

2.如果有reject-with icmp-port-unreachable 要先移除,不然就跳過這步驟,下面是移除input第幾個:
sudo iptables -D INPUT 3
3.新增連入iptables:

sudo iptables -A INPUT -p tcp --dport 8388-j ACCEPT
4.加回iptables:
sudo iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable

沒有留言:

張貼留言