第二个VPS科学球 - 改
新VPS科学球是racknerd一年9.89$捡的,算是美帝良心?
后记:racknerd丢包率和延迟真的没法忍,趁人民币强势斥巨资(三百人民币)换了某瓦工的最贫穷CN2线路,果然一分价钱一分货……
看了几个帖子又咨询了chatgpt,简单的说CN2 GIA是CN2的升级版,贵了两三倍,如果只是上上网CN2就够用了。
搭建新VPS科学球环境
Centos7实在太老了就重装了Ubuntu 22.04,首次登录改密码(为了方便,应该把zsh
、git
、oh-my-zsh
、vim
、tmux
装上。):
1 | # VPS上改密码 |
将ssh设置为无法用密码登录(只接受key pair认证),顺便调整ssh超时时间:
1 | # /etc/ssh/sshd_config 中: |
开防火墙策略:
1 | sudo ufw allow 22/tcp comment ssh |
搭建VPS科学球
继续向一键安装脚本(原来的一键安装脚本已失效)低头,真香……这个脚本推荐的是trojan+TCP+TLS,我客户端也按照这个配的,其他的配置貌似连不上,我也没仔细研究。
1 | wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh |
配置aria2c
远程下载服务,本地使用AriaNg搭配风味更佳:
1 | mkdir -p ~/.config/aria2 |
配置如下:
1 | ## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## |
启动aria2c:
1 | aria2c --conf-path=$HOME/.config/aria2/aria2.conf -D |
如果端口有监听,防火墙也设了策略,但是仍然不通,可能是selinux策略的问题,可以在selinux中选择添加新端口:
1 | sudo semanage port -l | grep http_port_t |
如果nginx报403错误,有可能是selinux的问题,看看ll
文件夹权限最后有没有一个.
或+
,如果有可以尝试关闭selinux重新创建文件夹,去掉那个.
。
如果觉得selinux麻烦,可以选择关闭selinux:
1 | # 验证selinux状态: |
另外,我的tmux
配置用的是Oh my tmux,安装也很简单,只要tmux >= 2.4
即可(centos7默认是1.8)。
1 | cd |
OpenWRT和客户端设置
我的macOS上用的是v2rayU,不过这个客户端貌似只有trojan配置可以用,其他不通,我也没仔细研究。
树莓派上依然是刷了最新版的OpenWrt-Rpi,这个版本跟一两年前的区别是,刷固件的时候会先覆盖内存卡做初始化,避免了上次那种配置了WiFi后即使重刷固件依然无法修改WiFi配置,必须低格才能删掉配置的尴尬。
在OpenWRT上要记得先设置静态IP(比如我用192.168.1.150
),网关指向家里最前端的路由,再配置自定义DNS(如陕西移动的DNS是211.137.130.19
),此时树莓派网络就正常了。
接下来记得设置OpenWRT的DHCP,以使连上来的终端的网关和DNS强制指向这个树莓派,在 网络->LAN->高级设置 中勾选强制;设置IPv4子网掩码(比如我用255.255.255.0
);设置DHCP选项,比如我用3,192.168.1.150
和6,192.168.1.150
(3
指设置DHCP客户端的网关,6
指设置DHCP客户端的DNS,详见维基DHCP选项)。
最开始没设置DHCP选项,导致客户端接受的是前端路由器的DHCP设置,搜到这篇排错后,用service dnsmasq restart
后查看日志logread -e dnsmasq
,发现报错:
1 | Mon Oct 31 22:27:24 2022 user.notice dnsmasq: found already running DHCP-server on interface 'br-lan' refusing to start, use 'option force 1' to override |
这里要用强制选项DHCP才能设上,不过,如果网里同时有两个DHCP,通常相应快的那个会抢占设置客户端,所以最好还是关掉一个。
安装nps内网穿透服务端
小可怜服务器没多少空间舍不得安装golang,直接从release列表中下载相应的二进制运行:
1 | wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz |
查看日志cat /var/log/nps.log
,此时应该会有报错,因为我的443
早就被占了:
1 | ... |
修改配置文件/etc/nps/conf/nps.conf
的用户名和密码,以及默认的http
和https
监听:
1 | # ... |
重启nps restart
再次查看日志,已正常启动:
1 | ... |
开启防火墙,其中:
8024
是默认桥接口,用于将内网客户端注册上来;8080
是管理口,用于网页访问修改配置;10022
是我要用的ssh映射端口口,即访问4x.x.x.x:10022
->内网192.168.x.x:22
;- 其他端口,如
8443
->443
、8880
->80
,是用于作域名映射的,我不用就不开策略了。
1 | sudo firewall-cmd --zone=public --permanent --add-port=8024/tcp # nps 桥接端口 |
然后,在内网的树莓派3B+上下载客户端:
1 | wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_arm_v7_client.tar.gz |
按照说明添加一个客户端,并在树莓派上尝试连接nps服务器:
1 | ./npc -server=4x.x.x.x:8024 -vkey=******* |
此时刷新nps管理页面,客户端已显示线了。在管理页面的TCP隧道中加一条端口映射,就可以从电脑上连接ssh -p 10022 pi@4x.x.x.x
了。
新树莓派环境里youtube-dl
下载带有key的hls
时,使用--hls-prefer-native
标识如果不生效,总是回到用ffmpeg
下载,有可能是因为树莓派的python
环境里缺少解密包,安装即可:
1 | pip install pycrypto |
树莓派需要下载这些东西,如果要使用OpenWRT,可以临时改一下路由,将0.0.0.0/0
的默认路由指向OpenWRT即可:
1 | # 添加前 |
另外,
最后注意,此时树莓派的22口相当于暴露在公网上了,所以最好把ssh的密码登录关掉,只允许密钥登陆。