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。