Ubuntu 16.04下Shadowsocks服务器端安装及优化
前言
本教程旨在提供简明的Ubuntu 16.04下安装服务器端Shadowsocks。不同于Ubuntu 16.04之前的教程,本文抛弃initd,转而使用Ubuntu 16.04支持的Systemd管理Shadowsocks的启动与停止,显得更为便捷。优化部分包括BBR、TCP Fast Open以及吞吐量优化。
本教程仅适用于Ubuntu 16.04及之后的版本,基于Python 3,支持IPv6。
安装pip
本教程使用Python 3为载体,因Python 3对应的包管理器pip3
并未预装,首先安装pip3
:
sudo apt install python3-pip
安装Shadowsocks
因Shadowsocks作者不再维护pip
中的Shadowsocks(定格在了2.8.2),我们使用下面的命令来安装最新版的Shadowsocks:
pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip
安装完成后可以使用下面这个命令查看Shadowsocks版本:
sudo ssserver --version
目前会显示“Shadowsocks 3.0.0”。
创建配置文件
创建Shadowsocks配置文件所在文件夹:
sudo mkdir /etc/shadowsocks
然后创建配置文件:
sudo nano /etc/shadowsocks/config.json
复制粘贴如下内容(注意修改密码“password”):
{
"server":"::",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
然后按Ctrl + O
保存文件,Ctrl + X
退出。
测试Shadowsocks配置
首先记录下服务器的IP地址
ifconfig
找到IPv4地址(和IPv6地址),如我的ifconfig
输出为
eth0 Link encap:Ethernet HWaddr 46:91:89:4e:c1:52
inet addr:138.68.51.55 Bcast:138.68.63.255 Mask:255.255.240.0
inet6 addr: fe80::4491:89ff:fe4e:c152/64 Scope:Link
inet6 addr: 2604:a880:2:d0::3727:7001/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:102667 errors:0 dropped:0 overruns:0 frame:0
TX packets:7869 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:151166937 (151.1 MB) TX bytes:1151476 (1.1 MB)
所以我的IPv4地址是138.68.51.55
,IPv6地址是2604:a880:2:d0::3727:7001
。
然后来测试下Shadowsocks能不能正常工作了:
ssserver -c /etc/shadowsocks/config.json
在Shadowsocks客户端添加服务器,如果你使用的是我提供的那个配置文件的话,地址填写你的IPv4地址
或IPv6地址
,端口号为8388
,加密方法为aes-256-cfb
,密码为你设置的密码
。然后设置客户端使用全局模式,浏览器登录Google试试应该能直接打开了。
这时浏览器登录http://ip138.com/
就会显示Shadowsocks服务器的IP啦!
测试完毕,按Ctrl + C
关闭Shadowsocks。
配置Systemd管理Shadowsocks
新建Shadowsocks管理文件
sudo nano /etc/systemd/system/shadowsocks-server.service
复制粘贴:
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-abort
[Install]
WantedBy=multi-user.target
Ctrl + O
保存文件,Ctrl + X
退出。
启动Shadowsocks:
sudo systemctl start shadowsocks-server
设置开机启动Shadowsocks:
sudo systemctl enable shadowsocks-server
至此,Shadowsock服务器端的基本配置已经全部完成了!
优化
这部分属于进阶操作,在你使用Shadowsocks时感觉到延迟较大,或吞吐量较低时,可以考虑对服务器端进行优化。
开启BBR
BBR系Google最新开发的TCP拥塞控制算法,目前有着较好的带宽提升效果,甚至不比老牌的锐速差。
升级Linux内核
BBR在Linux kernel 4.9引入。首先检查服务器kernel版本:
uname -r
如果其显示版本在4.9.0之下,则需要升级Linux内核,否则请忽略下文。
更新包管理器:
sudo apt update
查看可用的Linux内核版本:
sudo apt-cache showpkg linux-image
找到一个你想要升级的Linux内核版本,如“linux-image-4.10.0-22-generic”:
sudo apt install linux-image-4.10.0-22-generic
等待安装完成后重启服务器:
sudo reboot
删除老的Linux内核:
sudo purge-old-kernels
开启BBR
运行lsmod | grep bbr
,如果结果中没有tcp_bbr
,则先运行:
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
运行:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
运行:
sysctl -p
保存生效。运行:
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
若均有bbr
,则开启BBR成功。
优化吞吐量
新建配置文件:
sudo nano /etc/sysctl.d/local.conf
复制粘贴:
# max open files
fs.file-max = 51200
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096
# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# turn off fast timewait sockets recycling
net.ipv4.tcp_tw_recycle = 0
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max SYN backlog
net.ipv4.tcp_max_syn_backlog = 4096
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# turn on TCP Fast Open on both client and server side
net.ipv4.tcp_fastopen = 3
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = bbr
运行:
sysctl --system
编辑之前的shadowsocks-server.service文件:
sudo nano /etc/systemd/system/shadowsocks-server.service
在ExecStart
前插入一行,内容为:
ExecStartPre=/bin/sh -c 'ulimit -n 51200'
即修改后的shadowsocks-server.service内容为:
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStartPre=/bin/sh -c 'ulimit -n 51200'
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-abort
[Install]
WantedBy=multi-user.target
Ctrl + O
保存文件,Ctrl + X
退出。
重载shadowsocks-server.service:
sudo systemctl daemon-reload
重启Shadowsocks:
sudo systemctl restart shadowsocks-server
开启TCP Fast Open
TCP Fast Open可以降低Shadowsocks服务器和客户端的延迟。实际上在上一步已经开启了TCP Fast Open,现在只需要在Shadowsocks配置中启用TCP Fast Open。
编辑config.json:
sudo nano /etc/shadowsocks/config.json
将fast_open
的值由false
修改为true
。Ctrl + O
保存文件,Ctrl + X
退出。
重启Shadowsocks:
sudo systemctl restart shadowsocks-server
注意:TCP Fast Open同时需要客户端的支持,即客户端Linux内核版本为3.7.1及以上;你可以在Shadowsocks客户端中启用TCP Fast Open。
至此,Shadowsock服务器端的优化已经全部完成了!
参考
- 怎么能更新到2.9.0呢? · Issue #622 · shadowsocks/shadowsocks
- Configuration via Config File · shadowsocks/shadowsocks Wiki
- apt - List all versions of a package - Ask Ubuntu
- How do I use apt-get to update to the latest kernel? - Ask Ubuntu
- RemoveOldKernels - Community Help Wiki
- 开启TCP BBR拥塞控制算法 · iMeiji/shadowsocks_install Wiki
- Optimizing Shadowsocks · shadowsocks/shadowsocks Wiki
- TCP Fast Open · shadowsocks/shadowsocks Wiki
在“[Service]”下面添加“LimitNOFILE=20480000”
这样有效
文章里的ExecStartPre,我这里没有效果。。
我的ipv6 only服务器套了warp,想弄个s5给telegrame的机器人用,可以怎么弄?
root@ip-172-31-5-161:~# ssserver -c /etc/shadowsocks.json
load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')()INFO: loading config from /etc/shadowsocks.json
2020-09-11 06:07:29 INFO loading libcrypto from libcrypto.so.1.1
2020-09-11 06:07:29 INFO starting server at ...:*
Traceback (most recent call last):
File "/usr/local/bin/ssserver", line 11, in <module>
File "/usr/local/lib/python3.6/dist-packages/shadowsocks/server.py", line 74, in main
tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))File "/usr/local/lib/python3.6/dist-packages/shadowsocks/tcprelay.py", line 754, in init
server_socket.bind(sa)OSError: [Errno 99] Cannot assign requested address
请教各位大神,这个问题如何解决,我是AWS上的UBUNTU 18.04。openssl.py文件中的cleanup改成reset后,reboot问题一样存在!!!已经折腾几天了,心累~
配置完全按楼主的,只改端口,就不会有这个问题
这个还有效吗,在18.04版本上使用后,log只有
-- No entries --
求解,大佬帮帮忙,谢谢
load_entry_point('shadowsocks==2.8.2', 'console_scripts', 'ssserver')()INFO: loading config from /etc/shadowsocks/config.json
2019-11-27 17:42:35 INFO loading libcrypto from libcrypto.so.1.1
Traceback (most recent call last):
File "/usr/local/bin/ssserver", line 11, in <module>
File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/server.py", line 34, in main
config = shell.get_config(False)File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/shell.py", line 262, in get_config
check_config(config, is_local)File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/shell.py", line 124, in check_config
encrypt.try_cipher(config['password'], config['method'])File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 44, in try_cipher
Encryptor(key, method)File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 83, in init
random_string(self._method_info[1]))File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 109, in get_cipher
return m[2](method, key, iv, op)File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 76, in init
load_openssl()File "/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)File "/usr/lib/python2.7/ctypes/__init__.py", line 379, in getattr
func = self.__getitem__(name)File "/usr/lib/python2.7/ctypes/__init__.py", line 384, in getitem
func = self._FuncPtr((name_or_ordinal, self))AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
你遇到了和我一样的问题,看报错应该是/home/qyl/.local/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py文件中的EVP_CIPHER_CTX_cleanup没有定义。
根据网上的攻略,可以这样修改:
sed -i "s/libcrypto.EVP_CIPHER_CTX_cleanup/libcrypto.EVP_CIPHER_CTX_reset/g" /home/qyl/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py
把文件中的EVP_CIPHER_CTX_cleanup都改成EVP_CIPHER_CTX_reset.
再启动服务,可以正常运行了。
谢谢!!解决了,真厉害!
补充给其他小白:
find / -name "openssl.py" 找到看对眼的路径替代
我是不是被拦截了?
loading libcrypto from libcrypto.so.1.0.0
2019-10-29 08:03:00 INFO starting server at :::8388
2019-10-29 08:04:16 INFO connecting jhbcjuanpyers:80 from ::ffff:42.248.54.97:41616
2019-10-29 08:04:16 ERROR unknown hostname b'jhbcjuanpyers' when handling connection from ::ffff:42.248.54.97:41616
2019-10-29 08:04:18 INFO connecting jrcrllj:80 from ::ffff:42.248.54.97:41617
2019-10-29 08:04:18 ERROR unknown hostname b'jrcrllj' when handling connection from ::ffff:42.248.54.97:41617
2019-10-29 08:04:32 INFO connecting lh3.googleusercontent.com:443 from ::ffff:42.248.54.97:41639
2019-10-29 08:05:05 INFO connecting suggestion.baidu.com:80 from ::ffff:42.248.54.97:41697
2019-10-29 08:05:11 INFO connecting www.google.com:443 from ::ffff:42.248.54.97:41716
把协议改成origin即可
感谢楼主,节省了太多的时间
求帮助,我vps上用speedtest测试有36M,但是连上ss上外网只有53k。买了profitserver的vps 2核1024ram,25G,CentOS-6-amd64
我在亚马逊云上的EC2搭建了SS/SSR,遇到一个很奇怪的问题,请教大侠:
1、刚开始的时候很正常,可是过不了多久SS和SSR就连不上了,但是SSH可以连上。
2、只有重新启动了EC2后(IP地址更新)了,又可以正常使用,但过不了多久(不定时,有时几分钟,有时几天)又连不上了。
3、反复如此,每次都要重新启动EC2,后来我注意观察了一下日志,在SS/SSR连不上之前日志出现了如下错误:
2019-09-30 22:47:11 INFO tcprelay.py:643 TCP request apis.google.com:443 by user 2333
2019-09-30 22:47:11 INFO tcprelay.py:794 TCP connecting apis.google.com(172.217.166.46):443 from 17 2.31.4.25:52167 by user 2333
2019-09-30 22:47:12 WARNING common.py:238 unsupported addrtype 23, maybe wrong password or encryption method
2019-09-30 22:47:12 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data 07cf95c054e25d8758ed091094723 83cfe02fe93209ee392fe03f401e42409c344caa4bbfe2c9c34d747c2e945672b8d81016e8c72986e8e2692cc70512b7632c78d 078fa98220a1518ce39c24845e3dd5dbe6e3cde70b18862bc294e892d0c09681350380cff3998ebbb15beac3ecacd468638295b 5a824f2b7aefdd1ed198f8ef2fe502aafd0d75e6818a5e9baf7d9a4e9dc0b1804431d73257961c2ac64cd7a739d1e8df06e7ae7 144022be63a613cfb647e1862bc5f77b5db34d0bbb1ae8393852a2cf56c0c0a54f739ef607baba01eb54d7c8b59a2eb5f897735 6476448351ab4585ef6fd81ed2109b45eeabcfd22e53bb63d4147bc2ac2f80ba17b243f65c4cf35049f64a326be1ce87a32b96b a0bf48febaac4da675a47af52eb5da2e704ffcda55476dd7715ed59ee8fdcffa3d68646fd33a9aa02444a161cdfac1735ddb76d b1123640539aa1855cc3363873220c154f51a21ecc9e886f4e8aa2e541f654823ed407411ef16429ce5c726c8830352c83e7fd7 0088b568c4db903544f5ab3330913c4f25c4fdb4aadf18bc872ce0c766f34f1201503cfe4c51c28ec73331efbdae3c4baa77ed9 ce2eb7a867312b75d566295c402fbb72f4d4d56190834df7ead1bbe3503ae634c90625848885598c2b6a7bd61909aae9ec9d2f7 f5959813e0b5ccb0bb763b6bee132979a0c2407bc56149409658edc566641d999b78f242ade53d50549f03288192fdbb48879a3 69c482b84e3b5b8421a2872175b9686449b77fb37a32d87fcb1bd from ::ffff:121.57.226.39:41202 via port 2333 by UID 2333
2019-09-30 22:47:12 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff :121.57.226.39:41202
2019-09-30 22:47:23 INFO tcprelay.py:643 TCP request clients1.google.com:443 by user 2333
2019-09-30 22:47:23 INFO tcprelay.py:794 TCP connecting clients1.google.com(172.217.26.238):443 fro m 172.31.4.25:36383 by user 2333
2019-09-30 22:47:27 INFO tcprelay.py:643 TCP request www.google.com:443 by user 2333
2019-09-30 22:47:27 INFO tcprelay.py:794 TCP connecting www.google.com(216.58.203.132):443 from 172 .31.4.25:48355 by user 2333
2019-09-30 22:47:27 WARNING common.py:238 unsupported addrtype 20, maybe wrong password or encryption method
2019-09-30 22:47:27 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data 1900ba4ec942cc4e3adb98a2cf5a9 4187f0fb9f5cec7fe23921f6ca47a6e1272323f364925c4b9a92f19aff5678eaecd7dc8f28059ef339b32761c840edf3d0ec2fa 3b3b5e9440314c37855351d141fec87e847e1ae389f364c9747c1045522222aef7b8a6054f3f2e5b4fb4bed432ec8d495e762c3 5a31cd241d581a0f8e38b8147b10a97d8fe064f9b5850174bd6515040a297d5b510a2c5aaadddaf453b1a8fc16b172654803488 7c7c65f595f00687a5ff1f1a474ee99e10584552b13704b28f8acd7e8795c9af0179f1ad0319827f067e278a0a3428e0cf27f26 e55b9c608efda8301e2964b55dcfe98e7c9e35499060d7d4371f1a76cf4bf2ea1837bdebf77f799fea3f434a02a7ad508d68b80 021b308fb60eeac4b5813ca6a59076db608e2a087c7cf78c3fb574d65ab7beb921a8217602493b7c60f81db1b799cfad09fb9e9 140b807ae1a2f2bec816adffaead3fe700aec97b6aad185252ceaba33c6299598772f2cdb066a54673845fa428f938cf42d126e 515e58f407d50cf2ff39acb5fb8e721ca4fd894f8e265ce49ef36cf83c38ec8c4df6ec0c31dbf81ae4fbb05e6471b16e9a53c46 7aa2fc8fa6476d1126b5de02f1006136b89615b2e0f5b301372d5bb0c41152a5e7eb3b1da4202fbd9e3725f0b724206cbd06006 b8bf0ae6bd6ec4f38ac046ee7ae67846b66b3ba2357c8e4e53c7314d9889c6ad447a745a9d2baea803fda7ae8c510f1590db69a e773708998e1cb85fdf2f4ec3aba531d3d5b3153a9e95a4ec5b365ab96a8820983de22202e047ade8f83dccdac6b7df4b9f72dd 1310ee9030e7abe30a8f0bbded8a8c60b2f75aa164894909c980eb9bbc from ::ffff:220.200.156.52:59272 via port 23 33 by UID 2333
2019-09-30 22:47:27 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff :220.200.156.52:59272
2019-09-30 22:47:28 INFO tcprelay.py:643 TCP request www.google.com:443 by user 2333
2019-09-30 22:47:28 INFO tcprelay.py:794 TCP connecting www.google.com(216.58.203.132):443 from 172 .31.4.25:59233 by user 2333
2019-09-30 22:47:35 WARNING common.py:238 unsupported addrtype 193, maybe wrong password or encryption method
2019-09-30 22:47:35 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data a317dcd33c01ea473adb98a2cf5a9 4187f0fb9f5cec7fe23921f6ca47a6e1272323f364925c4b9a92f19aff5678eaecd7dc8f28059ef339b32761c840edf2559c2fa 3b3b5e9440314c37855351d141fec87e847e1ae389f364c9747c1045522222aef7b8a6054f3f2e5b4fb4bed432ec8d495e762c3 5a31cd241d581a0f8e38b8147b10a97d8fe064f9b5850174bd6515040a297d5b510a2c5aaadddaf453b1a8fc16b172654803488 7c7c65f595f00687a5ff1f1a474ee99e10584552b13704b28f8acd7e8795c9af0179f1ad0319827f067e278a0a3428e0cf27f26 e55b9c608efda8301e2964b55dcfe98e7c9e35499060d7d4371f1a76cf4bf2ea1837bdebf77f799fea3f434a02a7ad508d68b80 021b308fb60eeac4b5813ca6a59076db608e2a087c7cf78c3fb574d65ab7beb921a8217602493b7c60f81db1b799cfad09fb9e9 140b807ae1a2f2bec816adffaead3fe700aec97b6aad185252ceaba33c6299598772f2cdb066a54673845fa428f938cf42d126e 515e58f407d50cf2ff39acb5fb8e721ca4fd894f8e265ce49ef36cf83c38ec8c4df6ec0c31dbf81ae4fbb05e6471b16e9a53c46 7aa2fc8fa6476d1126b5de02f1006136b89615b2e0f5b301372d5bb0c41152a5e7eb3b1da4202fbd9e3725f0b724206cbd06006 b8bf0ae6bd6ec4f38ac046ee7ae67846b66b3ba2357c8e4e53c7314d9889c6ad447a745a9d2baea803fda7ae8c510f1590db69a e773708998e1cb85fdf2f4ec3aba531d3d5b3153a9e95a4ec5b365ab96a8820983de22202e047ade8f83dccdac6b7df4b9f72dd 1310ee9030e7abe30a8f0bbded8a8c60b2f75aa164894909c980eb9bbc from ::ffff:1.202.114.102:7231 via port 2333 by UID 2333
2019-09-30 22:47:35 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff :1.202.114.102:7231
2019-09-30 22:47:36 INFO tcprelay.py:643 TCP request clients2.google.com:443 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:794 TCP connecting clients2.google.com(216.58.199.174):443 fro m 172.31.4.25:46295 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:643 TCP request lh3.googleusercontent.com:443 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:794 TCP connecting lh3.googleusercontent.com(216.58.199.129):4 43 from 172.31.4.25:49515 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:643 TCP request apis.google.com:443 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:794 TCP connecting apis.google.com(172.217.166.46):443 from 17 2.31.4.25:55521 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:643 TCP request www.gstatic.com:443 by user 2333
2019-09-30 22:47:36 INFO tcprelay.py:794 TCP connecting www.gstatic.com(172.217.26.227):443 from 17 2.31.4.25:42683 by user 2333
2019-09-30 22:47:38 INFO tcprelay.py:643 TCP request adservice.google.com:443 by user 2333
2019-09-30 22:47:38 INFO tcprelay.py:794 TCP connecting adservice.google.com(172.217.167.162):443 f rom 172.31.4.25:33073 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:643 TCP request apis.google.com:443 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:794 TCP connecting apis.google.com(172.217.166.46):443 from 17 2.31.4.25:53235 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:643 TCP request www.gstatic.com:443 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:794 TCP connecting www.gstatic.com(172.217.26.227):443 from 17 2.31.4.25:49033 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:643 TCP request lh3.googleusercontent.com:443 by user 2333
2019-09-30 22:47:58 INFO tcprelay.py:794 TCP connecting lh3.googleusercontent.com(216.58.199.129):4 43 from 172.31.4.25:37463 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:643 TCP request encrypted-tbn0.gstatic.com:443 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:794 TCP connecting encrypted-tbn0.gstatic.com(216.58.199.142): 443 from 172.31.4.25:41461 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:643 TCP request encrypted-tbn0.gstatic.com:443 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:794 TCP connecting encrypted-tbn0.gstatic.com(216.58.199.142): 443 from 172.31.4.25:58621 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:643 TCP request encrypted-tbn0.gstatic.com:443 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:794 TCP connecting encrypted-tbn0.gstatic.com(216.58.199.142): 443 from 172.31.4.25:49509 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:643 TCP request encrypted-tbn0.gstatic.com:443 by user 2333
2019-09-30 22:48:01 INFO tcprelay.py:794 TCP connecting encrypted-tbn0.gstatic.com(216.58.199.142): 443 from 172.31.4.25:38771 by user 2333
2019-09-30 22:48:14 INFO tcprelay.py:643 TCP request www.flyzy2005.com:443 by user 2333
2019-09-30 22:48:14 INFO tcprelay.py:643 TCP request www.flyzy2005.com:443 by user 2333
兄弟,你的问题解决了没,我也遇到了和你一样的问题,几天了解决不了。。
大兄弟,你的解决没 ,我的也是这样
和你一样的情况,也是AWS,也是只能用几天,还没解决
同样问题求解
楼主您好,我想请问为什么当我输入ssserver -c /etc/shadowsocks/config.json时会出现address already in use的报错?
换一个端口应该可以
首先,非常感谢!
其次,非常期待这篇blog能够与时俱进,更新下去!保持最新!造福于我们!
测试下Shadowsocks可以正常使用,但是配置Systemd管理Shadowsocks没办法正常访问,可能是什么原因啊
谢谢博主,搭建成功。
感谢大神,我的电脑看YouTube很快了!但是我的手机通过detour软件ss之后,一直达不到像电脑这样的效果(YouTube很慢才能打开,而且不能播放),而且在连ipv6的校园网wifi和使用蜂窝数据时情况是一样的(btw, 是不是蜂窝网络ipv4达不到加速效果啊?),不知道什么原因,麻烦大神帮忙解答疑惑
你是不是应该评论到另一篇文章呀?这个可能的原因很多哟,随便说两个
没有走代理。开全局模式登ip138.com之类的网站检查IP是不是服务器IP。没有走IPv6。确认客户端填写的服务器端IP是IPv6地址而不是IPv4地址。对对对,我后来才看到你另外一篇文章有讲这个。
我登了ip138.com确实显示的是美国ip,但是打开网站的速度很慢,看视频的话更是完全打不开。但是pc端访问的话是很快的,所以很困惑,不知道是不是配置问题。还是说我使用的ssr软件有问题(IOS端名字叫做detour)
你可以试试换个客户端哟,还有一种可能就是DNS解析问题,本地解析和远程解析的问题~
本地只有iPV4环境,怎么去访问IPV6的服务器,ss已经搭建好,也能正常启动,客户端用的全局模式,测出来的IP还是本地的,iPV4能访问网络,ipv6无法访问,请问是什么原因?谢谢
首先你需要确定全局模式是代理到服务器访问的,比如登ip138.com要显示是服务器IP。这时候要是还是不能登IPv6网站的话,需要考虑你的服务器是不是不支持IPv6,可以ssh连上去ping一个IPv6网站看能不能ping通~
INFO: loading config from /etc/shadowsocks/config.json
sys.exit(main())2019-03-30 00:12:58 INFO loading libcrypto from /home/yl/anaconda3/lib/libcrypto.so.1.0.0
2019-03-30 00:12:58 INFO loading libsodium from /home/yl/anaconda3/lib/libsodium.so.23
2019-03-30 00:12:58 INFO starting server at 144.34.240.98:10086
Traceback (most recent call last):
File "/home/yl/anaconda3/bin/ssserver", line 10, in <module>
File "/home/yl/anaconda3/lib/python3.6/site-packages/shadowsocks/server.py", line 74, in main
tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))File "/home/yl/anaconda3/lib/python3.6/site-packages/shadowsocks/tcprelay.py", line 754, in init
server_socket.bind(sa)OSError: [Errno 99] Cannot assign requested address
how to do with it ?楼主
这是我看过的最全最好的搭建SS的文章。之前看了很多教程都是和实际操作有出入。但博主的这篇文章,让我非常顺利地搭建起了SS。感谢博主~
我为了搭建EC2 看了不下百篇教程,但都是在搭建好后,无法完成链接。端口设置已打开,但是查询偏偏是关闭。
直到按照博主的方法重新试了一下,才终于完成。
感谢!!!!!
博主新年好
请问搭建一个SSR后,ipcheck检测,只有国内tcp不正常,该怎么解决?
你说的ipcheck是指?
是这个 https://ipcheck.need.sh/
我在外国买的OpenVZ ubuntu16.04 vps,更新内核报错
OpenVZ 不支持更新内核,不是完整的虚拟化。需要kvm才可以
抱歉啊OpenVZ这种虚拟化我了解的不多~我猜很有可能是VPS或者OpenVZ不支持手动更新内核~
谢了
谢谢,很好的文章。
您好,我按照您的教程成功的实现了ipv6免流量上网,但是发现网速非常的慢,只能浏览一下网页,看YouTube上的视频的时候也要等好久才能加载出来,即使BBR优化了也没什么改进,这是啥原因,我的ipv6平常下pt资源的的hi和网速都在10M左右还是非常快的
如果你确定本地和VPS是IPv6连上的话,那就需要考虑你们学校教育网国际出口带宽太低,导致即使是IPv6访问国外资源也很慢。这种情况可以考虑换VPS物理地址,比如旧金山、日本、新加坡等试试
教育网环境下,使用ipv4看YouTube 4k视频无压力,ipv6下 240p都卡顿。用的ss+锐速破解版,博主知道这是为什么吗?
请问您现在解决这个问题了吗? 我也是同样的问题,ipv4速度正常而v6只有200K。
这个...太诡异了,没见过这种情况唉
你要是想深究的话,可以试试traceroute看看IPv4和IPv6环境下都是怎么路由的~
我想请问下ubuntu18.04下,我要将规则设置为aes-128-gcm该加什么包?
这里https://github.com/shadowsocks/shadowsocks/issues/1097看到一个类似的issue,貌似安装ss 3.0.0版就支持了,我的教程中就是安装的3.0.0版应该没问题的吧?
测试
您好,我按照楼主的配置遇到了这样的问题
2018-09-10 08:55:51 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5250
2018-09-10 08:55:51 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5251
2018-09-10 08:55:51 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5253
2018-09-10 08:56:05 INFO connecting beacons.gcp.gvt2.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5255
2018-09-10 08:56:21 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5257
2018-09-10 08:56:21 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5259
2018-09-10 08:56:24 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5261
2018-09-10 08:56:27 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5263
2018-09-10 08:56:29 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5265
2018-09-10 08:56:29 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5267
2018-09-10 08:56:29 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5269
2018-09-10 08:56:30 INFO connecting www:80 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5272
2018-09-10 08:56:30 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5273
2018-09-10 08:56:52 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5275
2018-09-10 08:57:02 INFO connecting beacons.gvt2.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5277
2018-09-10 08:57:05 INFO connecting www.google.com:443 from 2001:0:9d38:6ab8:30c4:b439:9039:e7bd:5279
能够连接到我的服务器但是我的客户端接受不到服务器的消息,谷歌还是刷新不出来
想问一下 兄弟问题解决没 我也碰到了相同的问题 服务器上ss有接受到请求 但是却依然连不上google
这是客户端的日志还是服务器的呢?本地的话你需要拿到服务器日志看看有没有从客户端收到请求,有没有向目标网址发送请求哟
你好 博主 我也碰到了相同的问题 在服务器上systemctl status ssserver -l
└─7211 /usr/bin/python2 /usr/bin/ssserver -c /etc/shadowsocks.json显示出ssserver.service - ssserver
Loaded: loaded (/etc/systemd/system/ssserver.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2018-09-15 04:19:10 UTC; 1h 49min ago
Main PID: 7211 (ssserver)
CGroup: /system.slice/ssserver.service
Sep 15 06:05:50 vultr.guest ssserver[7211]: 2018-09-15 06:05:50 INFO connecting www.google.com.hk:443 from 112.10.181.155:3754
Sep 15 06:05:50 vultr.guest ssserver[7211]: 2018-09-15 06:05:50 INFO connecting www.google.com.hk:443 from 112.10.181.155:3753
Sep 15 06:05:51 vultr.guest ssserver[7211]: 2018-09-15 06:05:51 INFO connecting clients1.google.com:443 from 112.10.181.155:3755
Sep 15 06:06:21 vultr.guest ssserver[7211]: 2018-09-15 06:06:21 INFO connecting clients1.google.com:443 from 112.10.181.155:3762
Sep 15 06:06:52 vultr.guest ssserver[7211]: 2018-09-15 06:06:52 INFO connecting clients1.google.com:443 from 112.10.181.155:3768
Sep 15 06:06:52 vultr.guest ssserver[7211]: 2018-09-15 06:06:52 INFO connecting www.google.com.hk:443 from 112.10.181.155:3769
Sep 15 06:07:21 vultr.guest ssserver[7211]: 2018-09-15 06:07:21 INFO connecting clients1.google.com:443 from 112.10.181.155:3772
Sep 15 06:07:51 vultr.guest ssserver[7211]: 2018-09-15 06:07:51 INFO connecting clients1.google.com:443 from 112.10.181.155:3775
Sep 15 06:07:51 vultr.guest ssserver[7211]: 2018-09-15 06:07:51 INFO connecting beacons.gcp.gvt2.com:443 from 112.10.181.155:3776
Sep 15 06:08:21 vultr.guest ssserver[7211]: 2018-09-15 06:08:21 INFO connecting clients1.google.com:443 from 112.10.181.155:3778
服务器应该是接收到了请求 但是在客户端中却依然打不开google 而且在查看客户端的ss日志查看器中, 每次连google出站的线都会有 ,但是入站的线没有一点反应 这是怎么回事呢 求博主解答一下 非常感激!!!!
我之前也遇到这个问题了,是443端口的问题,感觉像是被重定向或者拦截了,换个不常用的端口也需有用(我改后就可以了)
请问怎么改这个端口?
很奇怪唉,这么说的话应该是服务器向Google请求没有拿到回复,难道你的服务器登不上Google??其他网站有可以上的么?
ubuntu 18.04.1
apt install python3-pip
还需要执行
pip3 install setuptools
奇怪我刚用Ubuntu 18.04尝试的不需要这个命令哎,好像记得setuptools是默认安装的~
18.04确实不需要,18.04.1才需要,setuptools被削减了
wow~谢谢反馈~这个真没注意到呢~
博主你好,我想请问一下,我是在centos部署的ss,延时挺大,有什么方法看自己的延时问题在哪,然后进行改进吗?
一般来说ss的延时和ping的延时是差不多的,所以你可以试试本地ping服务器看看延迟高不高,丢包率高不高~
小白求助
root@LON-Yearly:~# sudo systemctl status shadowsocks-server
● shadowsocks-server.service - Shadowsocks Server
Loaded: loaded (/etc/systemd/system/shadowsocks-server.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2018-08-18 03:14:23 UTC; 4s ago
Process: 2470 ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json (code=exited, status=1/FAILURE)
Process: 2462 ExecStartPre=/bin/sh -c ulimit -n 51200 (code=exited, status=0/SUCCESS)
Main PID: 2470 (code=exited, status=1/FAILURE)
Aug 18 03:14:23 LON-Yearly ssserver[2470]: File "/usr/local/lib/python3.5/dist-packages/shadowsocks/cryptor.py", line 130, in get_cipher
Aug 18 03:14:23 LON-Yearly ssserver[2470]: return mMETHOD_INFO_CRYPTO
Aug 18 03:14:23 LON-Yearly ssserver[2470]: File "/usr/local/lib/python3.5/dist-packages/shadowsocks/crypto/sodium.py", line 175, in init
Aug 18 03:14:23 LON-Yearly ssserver[2470]: load_libsodium(crypto_path)
Aug 18 03:14:23 LON-Yearly ssserver[2470]: File "/usr/local/lib/python3.5/dist-packages/shadowsocks/crypto/sodium.py", line 55, in load_libsodium
Aug 18 03:14:23 LON-Yearly ssserver[2470]: raise Exception('libsodium not found')
Aug 18 03:14:23 LON-Yearly ssserver[2470]: Exception: libsodium not found
Aug 18 03:14:23 LON-Yearly systemd[1]: shadowsocks-server.service: Main process exited, code=exited, status=1/FAILURE
Aug 18 03:14:23 LON-Yearly systemd[1]: shadowsocks-server.service: Unit entered failed state.
Aug 18 03:14:23 LON-Yearly systemd[1]: shadowsocks-server.service: Failed with result 'exit-code'.
root@LON-Yearly:~# sudo apt install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-pip is already the newest version (8.1.1-2ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 100 not upgraded.
你的ss加密方式是chacha20?这样的话就需要用到libsodium库,这里就是提示这个库没找到,也可以参考 https://github.com/noahziheng/ssr-helper/issues/10
楼主求助啊···完全按照教程来的,ping服务器可以通,ss客户端选从GFWList更新本地PAC也成功了,也关闭了服务器的nfw,ip,端口,密码,加密方式也都一致
更新GFWList成功一般代表ss客户端跑的是正常的唉,具体什么问题呢?
你好!小白有两个问题想问一下。
请问在ExecStart前插入一行的那条语句可以之前新建管理文件那儿就添加进去么?
然后那个新建配置文件 sudo nano /etc/sysctl.d/local.conf 这儿后面复制了一大段是不是也要Ctrl+O和Ctrl+X啊
额,没懂第一个回答。。。可不可以解释一下~~
就是不可以写在文件里,只能在ExecStartPre那写哟~
楼主,我遇到了奇怪的问题两次了。用着无法访问Internet,检查vps ss状态,ssserver active,但监测ssserver -c /etc/shadowsocks/config.json被告之address used,然后我排查被占用端口是哪个进程占用,发现就是ssserver,我将对应pid进程kill之后,就能用了。但过了几个小时后,旧病复发。下面是排查过程,求教
└─3621 /usr/bin/python3 /usr/local/bin/ssserver -c /etc/shadowsocshadowsocks-server.service - Shadowsocks Server
Loaded: loaded (/etc/systemd/system/shadowsocks-server.service; enabled;
Active: active (running) since Fri 2018-05-11 22:45:34 UTC; 10min ago
Main PID: 3621 (ssserver)
CGroup: /system.slice/shadowsocks-server.service
May 11 22:54:51 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:54:51 INFO
May 11 22:54:52 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:54:52 WARNI
May 11 22:54:52 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:54:52 ERROR
May 11 22:54:52 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:54:52 ERROR
May 11 22:55:09 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:09 INFO
May 11 22:55:09 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:09 WARNI
May 11 22:55:09 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:09 ERROR
May 11 22:55:09 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:09 ERROR
May 11 22:55:50 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:50 INFO
May 11 22:55:50 ubuntu-1gb-sfo2-01 ssserver[3621]: 2018-05-11 22:55:50 INFO
~
~
~
~
lines 1-17/17 (END)
root@ubuntu-1gb-sfo2-01:~# ssserver -c /etc/shadowsocks/config.json
load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')()INFO: loading config from /etc/shadowsocks/config.json
2018-05-11 22:58:29 INFO loading libcrypto from libcrypto.so.1.0.0
2018-05-11 22:58:29 INFO starting server at :::8003
Traceback (most recent call last):
File "/usr/local/bin/ssserver", line 9, in <module>
File "/usr/local/lib/python3.5/dist-packages/shadowsocks/server.py", line 74, in main
tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))File "/usr/local/lib/python3.5/dist-packages/shadowsocks/tcprelay.py", line 754, in init
server_socket.bind(sa)OSError: [Errno 98] Address already in use
root@ubuntu-1gb-sfo2-01:~# sudo lsof -i:8003
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssserver 3621 root 5u IPv6 58087 0t0 TCP *:8003 (LISTEN)
ssserver 3621 root 6u IPv6 58088 0t0 UDP *:8003
ss service正在运行这时你再用ssserver再开ss当然会提示出错,因为service的ss正在占着端口运行,执行ssserver就会报端口被占用的错误。
貌似你的service里有error提示,这个很不正常,你试试用journalctl(需要加一些参数)看详细的出错提示。再或者你把service stop掉,然后用ssserver命令,看看会报什么错误出来,就是你得先测试sserver命令跑起来没问题然后才改成service跑的~
谢谢楼主,端口占用懂啦。我试了试,stop service再start ssserver,可访问外网。stop ssserver再start service,可以访问外网。两种启动方式有什么区别,应该选择哪一种。
service start后看service status :active (running),但能看到ERRO
root@ubuntu-1gb-sfo2-01:~# sudo systemctl status shadowsocks-server
Tasks: 1● shadowsocks-server.service - Shadowsocks Server
Loaded: loaded (/etc/systemd/system/shadowsocks-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-12 17:16:49 UTC; 2min 46s ago
Process: 8574 ExecStartPre=/bin/sh -c ulimit -n 51200 (code=exited, status=0/SUCCESS)
Main PID: 8581 (ssserver)
Memory: 12.2M
CPU: 278msCGroup: /system.slice/shadowsocks-server.service
└─8581 /usr/bin/python3 /usr/local/bin/ssserver -c /etc/shadowsocks/config.jsonMay 12 17:16:59 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:16:59 ERROR can not parse header when handling connection from ::ffff:59.64.12
May 12 17:16:59 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:16:59 WARNING header is too short
May 12 17:16:59 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:16:59 ERROR can not parse header
May 12 17:16:59 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:16:59 ERROR can not parse header when handling connection from ::ffff:59.64.12
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 WARNING header is too short
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 ERROR can not parse header
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 ERROR can not parse header when handling connection from ::ffff:59.64.12
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 WARNING header is too short
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 ERROR can not parse header
May 12 17:17:00 ubuntu-1gb-sfo2-01 ssserver[8581]: 2018-05-12 17:17:00 ERROR can not parse header when handling connection from ::ffff:59.64.12
----------以下是用 journalctl查看 service得到的日志--------------------
root@ubuntu-1gb-sfo2-01:~# journalctl -u shadowsocks-server.service
-- Logs begin at Fri 2018-05-11 23:38:27 UTC, end at Sat 2018-05-12 14:51:36 UTC. --
May 12 00:26:21 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:21 INFO connecting api.github.com:443 from ::ffff:5
May 12 00:26:21 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:21 WARNING header is too short
May 12 00:26:21 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:21 ERROR can not parse header
May 12 00:26:21 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:21 ERROR can not parse header when handling connecti
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 INFO connecting www.gstatic.com:443 from ::ffff:
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 INFO connecting www.google.com.hk:443 from ::fff
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 WARNING header is too short
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 ERROR can not parse header
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 ERROR can not parse header when handling connecti
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 INFO connecting www.google.com.hk:443 from ::fff
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 INFO connecting www.google.com.hk:443 from ::fff
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 WARNING header is too short
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 ERROR can not parse header
May 12 00:26:25 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:25 ERROR can not parse header when handling connecti
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 WARNING header is too short
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 ERROR can not parse header
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 ERROR can not parse header when handling connecti
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 WARNING header is too short
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 ERROR can not parse header
May 12 00:26:26 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:26 ERROR can not parse header when handling connecti
May 12 00:26:27 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:27 INFO connecting safebrowsing.googleapis.com:443
May 12 00:26:27 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:27 WARNING header is too short
May 12 00:26:27 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:27 ERROR can not parse header
May 12 00:26:27 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:27 ERROR can not parse header when handling connecti
May 12 00:26:40 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:40 INFO connecting github.com:443 from ::ffff:59.64
May 12 00:26:40 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:40 INFO connecting github.com:443 from ::ffff:59.64
May 12 00:26:40 ubuntu-1gb-sfo2-01 ssserver[3985]: 2018-05-12 00:26:40 WARNING header is too short
楼主求教
貌似error是因为有非ss客户端向服务器这个端口发送信息,导致提示解析失败,不管也没太大问题。
使用ssserver命令最大的问题就是不能持久化运行,比如关掉ssh就断了,而service就是来解决这个问题的。所以一旦你测试ssserver能够正常运行了,就可以把它包成service来跑了,这是一种比较现代化的部署方式。
嗯嗯,多谢楼主解惑。但我发现 ssserver命令是可以持久化运行的:ssserver -c /etc/shadowsocks/config.json -d start,关闭ssh后ss客户端可以正常访问外网。楼主博文里写的“ssserver -c /etc/shadowsocks/config.json”关闭ssh或者Ctrl^c结束后ss客户端是不可用。还是说我理解有误。
ssserver -c /etc/shadowsocks/config.json -d start
与sudo systemctl start shadowsocks-server.service都可用
用ssserver -d start参数是可以持久化运行的,但就像我说的,用service是一种现代化的部署方式,不然你的日志从哪看到呢:)
我的json配置文件如下
"server":"::", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ "8388":"xxxxxxx", "8003":"xxxxxxx", "8000":"xxxxxxx", "8001":"xxxxxxx", "8002":"xxxxxxx", "8820":"xxxxxxx" }, "timeout":300, "method":"aes-256-cfb", "fast_open": true{
}
请问在测试shadowsocks那一步的时候,就无法连接google,同时在全局模式下也打不开那个测ip的网站,请问是什么问题呢?我之前研究过也建立成功过,这次更换droplet就出问题了。。。
测试的时候,如果客户端有访问到服务器端,那么服务器的终端里会实时更新客户端的请求网页地址等信息。如果你的没有显示的话就要考虑是客户端没有连上服务器,这时你需要重新检查客户端和服务器端参数是否相同,然后去找客户端日志看有没有报出错。
请问怎么开启Shadowsocks多账户呢?
另外我个人感觉Shadowsocks开全局没有什么用,实际上还是只加速了浏览器,尝试了Proxifier效果几乎等于没有,请问您是怎么加速浏览器外的程序呢?(迅雷改代理我也尝试过 失败了....)
多账户就是修改配置文件,在/etc/shadowsocks.json里改就好啦~
ss客户端开全局模式实际是配置了操作系统的代理,软件可以选择使用系统代理也可以选择忽略,这就造成了ss的全局模式只对部分软件起作用。一般你需要尝试如Proxifier这样的可以选择针对单个软件应用代理的软件,其原理就是强行截断软件的如TCP协议走代理,你说Proxifier不管用的话,就只能试试换个这样的代理软件了,这个确实挺麻烦的。
{
"server":"::", "local_address": "127.0.0.1", "local_port":1080, "port_password":{ "8388":"gypr123qq", "2333":"exciting", "2334":"interesting", "2335":"yidakouxiangtang", "2336":"interesting", "2337":"exciting", "2338":"radeonvega" }, "timeout":300, "method":"aes-256-cfb", "fast_open": true}
我试着配了一下 貌似是改错了....连不上.... 改回去又好.... 我想能IPv4连也能IPv6连.....请帖主看一下是不是有问题?
这个是官方文档https://github.com/shadowsocks/shadowsocks/wiki/Configure-Multiple-Users
看着好像没问题呀,试试在启动失败后sudo systemctl status shadowsocks-server看看状态和报错信息。
是否是按照秋水逸冰大神说的修改 etc/shadowsocks.json? 和他说的是一致的吗? 我是按您的教程安装的shadowsocks
贴主,您好,很荣幸能看见您的帖子,但是我有一些比较特殊的问题,想不明白,想问您咨询一下,同一个服务器中,可以同时开启SS服务端和客户端吗?如果我这台服务器安装了SS服务端,可以正常运行,但是我还想让这台服务器通过SS客户端连接到另外一台安装了SS的服务器,要怎么实现?可以联系我一下吗?345095552我的Q
你的这个特殊需求我也遇到过呀233333
其实不需要用到多个ss来作中继,比如你可以用socat直接透明转发流量,可以用cow来配置多级代理,搜一搜有很多参考实现的呢~
请问这个优化吞吐量部分很多都是net.ipv4。。。。那是否是只针对ipv4的进行了优化呢?如果是,怎样优化ipv6呢
我记得ubuntu/linux上这些网络策略虽然有ipv4前缀,但IPv6其实用到的就是IPv4的策略,即修改会同时对IPv4和IPv6生效。
请问, 当初安装pip的版本,就是2.8.2, 能用你这个地址的直接安装升级吗?
你好,这个是可以的,因为仍然是使用pip安装,还是处于pip的管理下
请问当我按下control O 后 终端出现这几个选项我该如何选择呢?
get help dos format append backup file
cancel mac format prepend to file
谢谢
每一个配置文件的步骤都有这样的问题
这个我没见过,但你应该是从windows复制文件到了服务器上,导致line end和Linux不匹配。这个一般选mac format(mac和linux是相同的line end)就好了。
謝謝不过似乎又有一个问题,就是第一步检查版本的时候
sudo: ssserver: command not found
执行apt install shadowsocks后现在是2.9.0.github那边更改了?
真是打扰了,我reset了服务器重新一步一步设置,但是无法启动● shadowsocks-server.service
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Failed to start shadowsocks-server.service: Unit shadowsocks-server.service is not loaded properly: Invalid argument.
我也遇到这个我问题了,换了一个加密方法
Encryption Method: camellia-256-cfb
没有报这个错了
/哭笑
把/usr/local/lib/python3.6/site-packages/shadowsocks/shell.py
241行242行改成
logging.error('found an error in config.json: %s','e.message')
其实是你配置出错了,你检查一下shadowsocks.json写错没,注释有咩有去掉
检查一下你的配置项,最后一个key-value不应该加,号
测试Shadowsocks配置出现AttributeError: 'JSONDecodeError' object has no attribute 'message'的问题怎么解决
哈哈,小白还是不知道所谓惯例啊,能不能帮我看一下我在 GB 后面跟着的留言啊?那个确实出现了无法启动的情况,今天又试了多次
哈哈~一觉醒来看到你的幸苦尝试,谢谢你的反馈,确实是我的疏忽没有在最前面加上那个“惯例”的update命令~
问题已解决
希望楼主在第一步加上
apt-get update
不然无法install pip3
我查了一遍,怀疑是第一步的问题,所以我再次reset服务器,发现 Unable to locate package python3-pip,当时我用来网上的code安装的pip,这可能是上面的原因,请教一下,当我输入apt-get install为什么依旧是unable to locate呢
Traceback (most recent call last):
config = parse_json_in_str(f.read().decode('utf8'))File "/usr/local/lib/python3.5/dist-packages/shadowsocks/shell.py", line 239, in get_config
File "/usr/local/lib/python3.5/dist-packages/shadowsocks/shell.py", line 509, in parse_json_in_str
return json.loads(data, object_hook=_decode_dict)File "/usr/lib/python3.5/json/__init__.py", line 332, in loads
return cls(**kw).decode(s)File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())File "/usr/lib/python3.5/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)json.decoder.JSONDecodeError: Invalid control character at: line 1 column 32 (char 31)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')()File "/usr/local/bin/ssserver", line 9, in <module>
File "/usr/local/lib/python3.5/dist-packages/shadowsocks/server.py", line 34, in main
config = shell.get_config(False)File "/usr/local/lib/python3.5/dist-packages/shadowsocks/shell.py", line 242, in get_config
e.message)AttributeError: 'JSONDecodeError' object has no attribute 'message'
这是测试ss能不能工作的结果。。。
您好,我按照您的教程遇到一个问题,就是ifconfig显示的IP是私网IP,这怎么办?
ifconfig显示的是私有IP是因为VPS提供商做了一层虚拟化,这样的话你就需要登录提供商提供的VPS管理面板,那里会显示你的VPS的实际公网IP~
请问楼主server那里直接填::就好吗,不用填具体ip吗?然后填::也可以用ipv4的ip连接吗
是的呢,只用填“::”就可以同时监听IPv4和IPv6了。
楼主你好,请问win版本的ss是不能开启TCP的吗
TCP fast open?Github讨论区那边似乎是说Windows平台都不支持的~
楼主,请问下,为什么配置完Systemd之后,使用sudo systemctl start shadowsocks-server命令没有办法打开shadowsocks,重启之后也没有自启动,
抱歉这些天太忙了,这个应该是service没有写正确,你可以用sudo systemctl status shadowsocks-server来看到当前的运行状态,正常情况下是绿色的active;否则的话你能看到最后报错的日志,想要看到更多日志就需要用journalctl命令了。
抱歉,接着这个问题问一下,Ubuntu17.10 64 遇到了同样的问题
报错日志:
shadowsocks-server.service
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Feb 05 16:19:15 ubuntu-s-1vcpu-1gb-ams3-01 systemd[1]: shadowsocks-server.s
Feb 05 16:19:48 ubuntu-s-1vcpu-1gb-ams3-01 systemd[1]: shadowsocks-server.s
Feb 05 16:21:01 ubuntu-s-1vcpu-1gb-ams3-01 systemd[1]: shadowsocks-server.s
Feb 05 16:21:46 ubuntu-s-1vcpu-1gb-ams3-01 systemd[1]: shadowsocks-server.s
多谢大神
这个日志看不到诶,你用sudo journalctl -e -u shadowsocks-server.service把最新的几行日志贴出来看看。
目测是shadowsocks-server.service里有问题,或者config.json格式有问题。
Feb 06 17:06:18 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:06:18
Feb 06 17:06:23 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:06:23
Feb 06 17:06:27 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:06:27
Feb 06 17:06:54 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:06:54
Feb 06 17:06:56 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:06:56
Feb 06 17:07:58 ubuntu-s-1vcpu-1gb-ams3-01 ssserver[17056]: 2018-02-06 17:07:58
lines 979-1001/1001 (END)
虽然启动shadowsock的命令一直报错,但是却可以翻墙,原因未知。。。我觉得应该是systemed那一步出了问题
貌似你截的日志也太短了呢(用的ssh复制的命令行吧?),要不邮件发我你的联系方式私聊吧~或者既然你能用了,也可以不用在意这些细节。
报错原因是你的ssserver的路径和作者的不一样。你按照作者的步骤重新安装一遍,不过,在最开始就要用root用户登录,也就是用了sudo -i 之后,才能开始作者的步骤。就没问题了
这是我的邮件HEICLAUDIUS@gmail.com。
sudo systemctl start shadowsocks-server
Failed to start shadowsocks-server.service: Unit shadowsocks-server.service is not loaded properly: Invalid argument.
See system logs and 'systemctl status shadowsocks-server.service' for details.
希望能和楼主取得联系,我用linode vps装Shadowsocks & L2TP/IPSec,使用的教程是李笑来老师(http://lixiaolai.com/2017/02/26/how-to-write-a-good-tutorial/)这个方法,手机端都能用L2TP/IPSec连上VPN,唯独PC端既无法用L2TP/IPSec连上,也无法用SS连上,试了N多办法,楼主你的那些参数我也模仿着改了,还是不行!有可能的话,麻烦楼主帮我看下,谢谢!
不知你的PC网络环境?ss错误提示?你可以试试PC和手机在同一网络环境看看手机能不能连上(极端点,PC发射wifi信号手机连),另外PC上的ss客户端可以记录日志的,注意看看日志里的错误原因。
谢谢了我的哥。
博主您好,请教下,我买的搬瓦工AZ的 线路,在他的网站搭建的ss,之前一直正常,因为购买新的服务,他给了新的ip和ssh,root了密码后 就不能用了,提示connection closed by peer,多次折腾都不成功,请问怎么解决?谢谢。
你是说给了新的ip后ss就用不了了么....那肯定是因为给你换了新服务器呀,配置得重新来的。抱歉,不太明白你的意思呢
是的,就是您说的那样,换了新的IP地址,新的SSH端口,我重新输入的新的资料,但还是不行。是不是因为启用新的IP和SSH,引起了GFW察觉,导致我的电脑或者手机地址被墙呢了? 如果这样,换回搬瓦之前原来用过的的IP和SSH是不是能解决问题?谢谢!
你要是想确认是不是GFW的问题,直接ping服务器IP就好了,能ping通说明不是GFW的锅,那你就应该考虑是不是ss没有配置好,如防火墙设置、端口号、密码等;如果不能ping通那就是GFW封了这个IP地址,一般来说GFW会封一段IP网段(就是说跟你IP临近的小伙伴不守规矩,然后你躺枪了);这个时候可以去找搬瓦工的客服,让换个新IP(不太可能换成你指定的IP)。
搬瓦工是openvz的,真能优化内核?我记得几年前看过官方的优化指南,还有锐速啥的说明,都说openvz是不行的。
对于虚拟化这块我就不熟啦,不过刚才搜了下似乎SSR是可以用的,就是设置操作会麻烦一些
你好?
我在DO的vps上搭了个ss,但是偶尔会有无法连接的情况,在服务器上查看显示shadowsocks is stop,之后手动启动就可以了,这样是什么原因啊 ,shadowsocks为啥会自己停止运行啊?用的是秋水逸冰的一键安装脚本,另一个在搬瓦工上的就没这个问题,先谢谢了
你好,这个得去看shadowsocks和systemctl的日志才能看到原因的,这里我也不好猜测咯。理论上来说是不会自己停止的,看日志才能发现原因...
这个看日志的命令是什么啊……找过两个好像不好用……谢谢了
ss自己记录的日志在/var/log/shadowsocks.log,这个可能看不出问题所在。所以还需要看系统的日志,这个根据不同系统和不同的ss安装方式也不一样了,比如是用systemctl管理ss的话,日志就可以用命令journalctl -u shadowsocks得到。
重启之后日志出现了,显示的是这些东西
load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')()2017-07-20 17:27:56 INFO starting server at :::8388
Traceback (most recent call last):
File "/usr/local/bin/ssserver", line 9, in <module>
File "/usr/local/lib/python3.5/dist-packages/shadowsocks/server.py", line 74, in main
tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))File "/usr/local/lib/python3.5/dist-packages/shadowsocks/tcprelay.py", line 754, in init
server_socket.bind(sa)OSError: [Errno 98] Address already in use
貌似意思是8388端口已经被占用,可以用Linux相关的命令看8388端口是被哪个进程占用的,或者直接在config里换个端口号咯。
我发现开启 systemd 管理就不记录日志了,关闭后恢复正常
通过你的配置之后使用 sudo less /var/log/shadowsocks.log 命令查看日志,发现没有这个文件,是没有记录日志吗?
看了楼主的文章恍然大悟..终于解决了2个节点的Too many open files 问题。 感谢。