Shadowsocks 的配置与优化

最近办公室网络波动影响工作,在 VPS 上重新搭建了一套 Shadowsocks 用来拉取源码。以下步骤适用于大多数 Linux 发行版,已在 Ubuntu 16.04 和 18.04 上测试通过。 2024 更新说明: 本文使用的 Python 版 shadowsocks 已停止维护。推荐使用 shadowsocks-rust,它是当前官方活跃维护的实现,性能更好且支持现代加密协议。如从零开始搭建,建议直接参考 shadowsocks-rust 官方文档。下文仍保留 Python 版步骤供参考。 基础环境准备 1 apt update && apt upgrade -y 安装并配置 Shadowsocks (Python 版) 安装 1 2 apt install python3-pip -y pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip 配置文件 1 2 mkdir /etc/shadowsocks vi /etc/shadowsocks/config.json 1 2 3 4 5 6 7 8 9 10 { "server":"::", "server_port":8888, "local_address": "127.0.0.1", "local_port":1080, "password":"your-password", "timeout":300, "method":"aes-256-cfb", "fast_open": true } 防火墙配置 1 2 3 4 5 iptables -I INPUT -p tcp --dport 8888 -j ACCEPT iptables -I INPUT -p udp --dport 8888 -j ACCEPT # 如果使用 UFW,则执行: ufw allow 8888 测试运行 1 ssserver -c /etc/shadowsocks/config.json 启用 BBR 加速 BBR (Bottleneck Bandwidth and Round-trip propagation time) 是 Google 开发的 TCP 拥塞控制算法,能显著提升网络吞吐量。 ...

2019年12月31日 · 3 分钟 · haoxiqiang

问题整理三

三个小问题的记录:DialogFragment 返回键处理、chmod 权限速查、SSL 域名中的下划线问题。 DialogFragment 返回键处理 DialogFragment 没有直接复写返回键的方法,有两种方式可以实现。 方式一:在 onCreateDialog 中复写 1 2 3 4 5 6 7 8 9 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new Dialog(getActivity(), getTheme()){ @Override public void onBackPressed() { // 在这里处理返回键逻辑 } }; } 方式二:通过 onKeyListener 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @Override public void onResume() { super.onResume(); Dialog dialog = getDialog(); if (dialog != null) { dialog.setOnKeyListener(this); } } @Override public void onPause() { super.onPause(); Dialog dialog = getDialog(); if (dialog != null) { dialog.setOnKeyListener(null); } } 现代方案:OnBackPressedDispatcher(AndroidX) 如果需要更高版本支持,推荐使用 AndroidX 的 OnBackPressedDispatcher。从 Fragment 1.6.1 开始,DialogFragment 默认返回 ComponentDialog,它自带独立的 OnBackPressedDispatcher,可以更优雅地处理返回键: ...

2017年4月5日 · 2 分钟 · haoxiqiang