Author: R.W.Flurando
Tags: 代理, proxy, 服务器, 阿里云
我是真没想到,阿里云的99服务器还有下文!
原来啊,它并不是只能走ssh和icmp,我弄错了。
是http公网服务要备案,就是用域名在80和443端口访问那种,并没有拦截udp和tcp包。
之前那篇博客真的是错怪阿里云了,对不起,摸摸头。
那么可以走数据包的话,这服务器还是有点用的,甚至可以说很香。
99一年嘛,更何况还有跑python脚本的能力(虽然我从来没有跑过……)。
你肯定好奇能跑数据包到底能干啥,对不对?
网络不仅仅有http,你要是了解过ipsec式vpn就知道,这不就可以组网么。
组网能干啥,游戏加速(你肯定想不到,很久不玩联机游戏的我为了调试这个特地下了国内某垃圾手游试验)。
既然是国内的服务器,自然只能加速国内的游戏。
准确说鉴于校园网实在太拉,也连带着加速了国内网站甚至少数可以直连的国际网站的访问。
既然没有跨境,事情就非常简单,因为理论上任何vpn方案都是可行的。
但是你懂的,有的老古董配置起来非常复杂,个人组网是不可能用的了。
由于我们需要的是代理,tailscale之类的仅组建虚拟局域网或者ngrok这种反代啊打洞啊是不行的,你没代理啊。
下面我比较一下不同vpn方案。
OpenVPN 我到现在都没懂它那个配置文件怎么写,无语了。
过。
Wireguard 这个其实很优雅,特别适合国内组网(比如大名鼎鼎的tailscale就用它运作)。
但是它配置起来还是很麻烦,还要wg genkey
什么的。
糟糕的是它每台机器都要在配置文件里写明其他机器,比较呆板,三个字“不好用”。
SoftEther VPN 这个明显是windows专用
用linux当pc且不熟悉ip
相关命令(什么叫不熟悉,现在让你不ai不搜索手动建立一个虚拟网卡转发流量会不会,不会就是不熟悉)的建议避雷,虽然有linux版而且可以方便运行
但是它需要客户端手动管理路由表,简直了,得网工专业。
那windows怎么不用,因为windows上是自动的谢谢。
Shadowsocks ss作为几年前的神,在没有额外伪装的前提下,也就是valinna版本,由于它的数据流完全没有特征,曾被人们用于穿过防火墙限制。
目前由于和主流流量差别过大,没有特征就是最大的特征,已经无法用于跨境代理。(理论上,我从没有尝试过,也不建议你去尝试。别杠,这里我说的“无法”不代表你整个搬瓦工三网回国,搭个默认ss就一定连不上,事实上你用特征明显的openvpn都可能能连,甚至稳定,但这不表明它合规,更不表明它能穿过防火墙,只表明你在白名单里,你牛逼,懂?)
那么这种为了穿墙而制造的无法使用的程序现在怎么还在活跃被国人使用呢,欸,可以境内代理嘛。
它的优势体现在配置方便。
V2Ray 作为2代的Ray,它主要用途是通过伪装成常见流量在有严格防火墙限制下强行跨境组网。
你想问合规么?跨境的话当然不合规啦,笑。
虽然境内使用理论上是合规的,但功能强大伴随的是配置复杂,没这个必要。
复杂度和要用户手写路由表的softether类似,这当然要排除了。
所以我们选择的就是配置最简单的代理Shadowsocks。
这也是国内众多(包括腾讯云,阿里云等厂商)推荐的加速器搭建方式。
既然是技术文章,自然要手把手教。
这里呢受众仅针对手头有闲置国内服务器的,像99一年或者新用户99一年轻量云确实划算,如果你是重度联机游戏用户的话,可以入手(注意选择好的机房位置同时关注带宽,vpn最重要的是带宽而不是内存和存储空间,否则起不到加速效果别怪我)。
如果你没有服务器,也可以当故事看看,但不建议入手,因为本文目的在于“如何处理国内无法搭建web服务的闲置服务器”,你如果有建站需求,避雷吧。
至于部分人可能会想用它翻墙回国,我是真不知道可行性。但我的建议是在自己国内的家中整个小服务器或者就在路由器上跑,而不是租一个服务器。
总之,有没有用,有用,但不建议入手。
关键是没公网web服务太伤了,基本不能共享(你总不能叫家人朋友先开ssh隧道转发吧!)只能自用,这就很逊。至于跑python脚本,自动CI构建什么的,我目前没有这方面需求。
不过既然能通过ip访问,我自然会尝试搭建一些对隐私要求不高的自建服务,这是后话。
如何ssh进服务器我就不说了,不过不推荐用什么奇怪的shell客户端,自带的不好么,linux一般都带ssh,windows也最好在拓展服务开启openssh,然后用cmd或powershell连。
然后就是下载安装shadowsocks,我选择shadowsocks-libev,因为这个阿里云服务器自带了,debian的话直接sudo apt install shadowsocks-libev
就好。
然后呢我们就写配置文件,很简单,先nano /etc/shadowsocks-libev/config.json
然后你会看到一个示例配置
由于我们只要它当服务器,所以你应该把它改成这样
{
"server": ["::0", "0.0.0.0"],
"mode": "tcp_and_udp",
"server_port": 8388,
"fast_open": true,
"password": "unsafe",
"method": "chacha20-ietf-poly1305"
}
别以为境内就安全,你整个老版本php一样被搞知道么?乖乖换个随机端口和强密码!
有人问怎么换?很好!幸亏你问的不是干嘛要换。
整个1024到65535之间的随机数当端口,换掉8388
拿密码管理器或者dicoware之类的生成一串强密码,换掉unsafe
然后运行sudo systemctl restart shadowsocks-libev
来运行这个配置
这样服务器端就好了
有没有人好奇多用户怎么弄,打比方你在那个config.json旁边写了一个类似但端口号不一样的test.json
那么你可以通过sudo systemctl enable [email protected] && sudo systemctl start [email protected]
回车来启用你的配置。
这是一个模板化服务,详见/lib/systemd/system目录。
注意,这个部分抄自Z.Zhou的博客文章。
现在服务是跑起来了(我假定你自行解决了防火墙开端口之类的问题好吧)
我们不连接不是白搭么。
那么进入客户端部分,你需要的是一个支持ss的客户端,当然百度上是下不到的。
我的建议是你电脑连不上github就干脆pip install shadowsocks
得了,手机端的话问好朋友要吧,用chatgpt的都能弄到。
这个python环境也没有的话,你应该用uu加速器之类的现成产品,而不是想着自建游戏加速器,再见!
客户端倒不大一样,因为我们没有必要将shadowsocks作为系统服务跑(你乐意也没事,反正资源占用少,难得豪气一把就开心开心吧)。
不过配置文件还是要写的,比如针对我的示例服务器配置,你应该有如下客户端配置:
{
"server":"0.0.0.0",
"server_port":8388,
"local_port":1080,
"password":"unsafe",
"method":"chacha20-ietf-poly1305"
}
这里要注意,你必须把0.0.0.0改成你服务器的ip地址,密码password和服务器端口server_port改成和之前的一致。
local_port倒无所谓,反正是你电脑上给你开放的代理端口,你只要把localhost:1080或127.0.0.1:1080当成http代理或socks5代理就可以达到加速效果了。
运行ss-server -c <到你这个配置文件的路径>
,比如那个文件叫client.json,你在同一个文件夹下就运行ss-local -c client.json
回车。
电脑不会设置http代理的建议自己上网查,windows在你配置wifi的那个窗口里,linux就是环境变量http_proxy那几个以及一些浏览器之类的自带联网设置里,macos我不清楚,应该和linux差不多。
注意,部分客户端,特别是手机端会默认vpn虚拟信道而不是proxy代理,上面的例子是给手写配置文件说的,如果你的客户端可以直接像填帐号一样录入,只要对照条目就行。
最后,出现问题怎么办?在服务器终端用sudo journalctl -u <服务名>
回车查看,这个服务名和systemctl那里用的是一致的。
在我知道之前错怪阿里云,其实用ip真的可以访问,真的可以开http服务之后,感觉99瞬间香了起来!
不过鉴于有个云盾跑着,不带端到端加密的自建网盘肯定是不能用的。
不过可玩性还是有,到时候看看能自建什么吧,离到期还有几个月,真是令人期待啊!