记录一下如何将闲置电脑借助 ProxyNT 改造成可以公网访问的服务器,原理是反向代理。
ProxyNT:https://github.com/sazima/proxynt 。后续操作需要有公网服务器,假设公网 IP 为 43.25.35.231
。
¶公网服务器(服务端)
1. 先安装 python pip:
1 | yum install python3-pip -y |
2. 然后通过清华源安装 proxynt
:
1 | pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple proxynt |
3. 在常用目录下新建 nt_server_config.json
配置文件:
1 | mkdir /mnt/proxynt |
1 | { |
4. 在公网服务器提供方的控制台页面新增安全组:6990-7010 范围端口备用。
5. 执行以下命令在前台运行服务端程序:
1 | nt_server -c nt_server_config.json |
¶闲置电脑(客户端)
安装 CentOS 系统的方式自行搜索,这里用的是 CentOS 7.9
。
1. 先安装 python pip:
1 | yum install python3-pip -y |
2. 然后通过清华源安装 proxynt:
1 | pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple proxynt |
3. 在常用目录下新建 nt_client_config.json
配置文件:
1 | mkdir /mnt/proxynt |
注意下方 URL 中的 IP 为公网服务器 IP,端口为 proxynt
服务端配置文件设置的端口:
1 | { |
4. 执行以下命令在前台运行客户端程序:
1 | nt_client -c nt_client_config.json |
如果安全组设置正确并且服务端已经正常启动,则可以看到 success
提示。
¶新增配置
在浏览器访问以下地址,输入上方服务端配置文件中设置的 admin 密码(new_password
)即可进入管理页面。
1 | http://43.25.35.231:6999/proxynt/admin |
可以在已经有的 nginx 配置里添加一段,以通过域名访问管理页面:
1 | location /proxynt { |
如果服务端和客户端服务都正常运行,则可以看到 online
:
后续闲置电脑上启服务新增配置时,远程端口为公网服务器刚刚设置范围安全组的一个值,可以递增的转发出去,闲置电脑上启动的服务端口填在本地端口,本地 ip 默认 127.0.0.1
即可。
¶SSH 连接
按上述新增配置的截图添加一个闲置电脑的 22 端口用于 SSH 远程连接。
使用以下命令在输入密码后即可远程连接到闲置电脑,后续在公司也可以远程连家里的闲置电脑。
1 | ssh root@43.25.35.231 -p 7000 |
添加秘钥到闲置电脑,后续 ssh 连接时不再需要输入密码:
1 | ssh-copy-id -oPort=7001 root@43.25.35.231 |
¶服务自启动
接下来的内容涉及到 Linux systemd
的知识,可以自行搜索补充。
由于刚刚都是在前台运行验证效果,日常使用中我们可以将刚刚启动服务端和客户端程序的命令设置为自启动。
¶公网服务器(服务端)
1. 使用以下命令查看 nt_server
的路径,要和下方的 ExecStart
开头保持一致。
1 | which nt_server |
2. 进入自启动脚本的默认目录:
1 | cd /lib/systemd/system |
3. 填入以下内容:
1 | [Unit] |
4. 加载上述自启动文件:
1 | systemctl daemon-reload |
5. 允许开机自启:
1 | systemctl enable proxynt_server.service |
6. 立即启动:
1 | systemctl start proxynt_server.service |
¶闲置电脑(客户端)
1. 使用以下命令查看 nt_client
的路径,要和下方的 ExecStart
开头保持一致。
1 | which nt_client |
2. 进入自启动脚本的默认目录:
1 | cd /lib/systemd/system |
3. 填入以下内容:
1 | [Unit] |
4. 加载上述自启动文件:
1 | systemctl daemon-reload |
5. 允许开机自启:
1 | systemctl enable proxynt_client.service |
6. 立即启动:
1 | systemctl start proxynt_client.service |
¶更新
有更新时,服务端和客户端都需要进行升级:
1 | pip3 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple proxynt |
¶写在最后
至此,你又有了一台公网服务器,性能用于学习足够了。