分類
Linux

shadowsocks client and firefox on Ubuntu 12

Fedora和SSR

新建客戶端的配置文件/etc/shadowsocks.json,內容為:

{
    "server":"111.222.42.55",
    "server_ipv6": "::",
    "server_port":8888,
    "local_address": "127.0.0.1",
    "local_port":1082,
    "password":"yourPasswd",
    "timeout":61,
    "udp_timeout": 60,
    "method":"aes-128-ctr",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs":"tls1.2_ticket_auth",
    "obfs_param": "",
    "fast_open": false,
    "workers": 1
}

ssr解壓後就可以直接執行這個命令來運行了:

/usr/bin/python /pathToYourSSR/shadowsocksr/shadowsocks/local.py -c /etc/shadowsocks.json

新建開機啟動文件/etc/systemd/system/ssr.service

[Unit]
Description=ssr local
After=NetworkManager.service

[Service]
ExecStart=/usr/bin/python /pathToYourSSR/shadowsocksr/shadowsocks/local.py -c /etc/shadowsocks.json

[Install]
WantedBy=basic.target
#更新守護列表
sudo systemctl daemon-reload
#查看是否能通過systemctl正常啟動
sudo systemctl start ssr.service
#如果沒報錯,就可以添加到開機啟動里了
sudo systemctl enable ssr.service

Fedora和polipo

雖然由於polipo停止維護,無法從軟件倉庫中直接下載,但好在github源碼還在,下載下來自己編譯就OK,我在Fedora25上用沒有問題。

git clone https://github.com/jech/polipo.git
cd polipo
make all
sudo su -c 'make install'
man polipo

新建默認配置文件/etc/polipo/config,寫入一下內容,注意端口號。

proxyAddress = "0.0.0.0"

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

chunkHighMark = 50331648
objectHighMark = 16384

serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32

單次運行的話,執行polipo即可。

使用 ssr-command-client 來管理訂閱

時間來到 2024 年,之前的代理取消了 v2ray 的支持,只剩下 ssr。通過搜索發現可以使用 ssr-command-client 來方便的管理訂閱,由於是 Python 項目,所以支持主流平台。在 Termux 上,訂閱的解析和選擇是沒問題的,但是運行命令有問題,可以通過我這個腳本來使用。

#filename: ssr_termux.py
import json
import os
import sys
from shadowsocksr_cli.parse_utils import *
from shadowsocksr_cli.network_test_utils import *
from shadowsocksr_cli.shadowsocks.daemon import write_pid_file
from shadowsocksr_cli.common import *

if len(sys.argv) < 2:
    print("Usage: python script_name.py 1.\n -1 for stop.")
    sys.exit(1)

p_index = int(sys.argv[1])

if p_index == -1:
    with open(Setting.get_value("shadowsocksr_pid_file_path"), "r") as file:
        pid = int(file.read())
        if pid > 0:
            try:
                os.kill(pid, signal.SIGTERM)
            except OSError as e:
                sys.exit(1)
        else:
            logging.error('pid is not positive: %d', pid)
    sys.exit(1)


with open(Setting.get_value("server_json_file_path"), "r") as file:
    data = json.load(file)

ssr_url = data[p_index]["ssr_url"]

#ssr_url = "ssr://c2ctMzcubXhyb"
ssr_dict = ParseShadowsocksr.parse_shadowsocksr(ssr_url)
ssr_dict = ShadowsocksrTest.test_shadowsocksr_connect(ssr_dict)

kwargs = {
    'local_address': '127.0.0.1',
    'local_port': 44084,
    'timeout': 30000,
    'workers': 1
}
if ssr_dict['connect']:
    p = Process(target=ControlShadowsocksr.start_on_windows,
                args=(ssr_dict,),
                kwargs=kwargs)
    p.start()
    write_pid_file(Setting.get_value("shadowsocksr_pid_file_path"),p.pid)

使用時可以通過設置 alias 快速執行,如:

alias s1="nohup python /path/to/ssr_termux.py 4&"
alias st="python /path/to/ssr_termux.py -1"

順便記錄下 ssr-command-client 的常見用法:

#使用 pip 安裝
pip install shadowsocksr-cli
#設置訂閱地址
shadowsocksr-cli --setting-url https://your_subscription.com/subscription.txt
#更新訂閱
shadowsocksr-cli -u
#列出節點
shadowsocksr-cli -l
#啟動第 4 個節點並指定 40000 端口
shadowsocksr-cli -s 4 -p 40000
#關閉第 4 個節點的連接
shadowsocksr-cli -S 4

本文更新於 2024/04/19。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *