ProxyNT 安装与使用

  记录一下如何将闲置电脑借助 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
2
3
mkdir /mnt/proxynt
cd /mnt/proxynt
vim nt_server_config.json
1
2
3
4
5
6
7
8
9
10
{
"port": 6999,
"path": "/proxynt",
"password": "helloworld",
"log_file": "/mnt/proxynt/logs/nt_server.log",
"admin": {
"enable": true,
"admin_password": "new_password"
}
}

  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
2
3
mkdir /mnt/proxynt
cd /mnt/proxynt
vim nt_client_config.json

  注意下方 URL 中的 IP 为公网服务器 IP,端口为 proxynt 服务端配置文件设置的端口:

1
2
3
4
5
6
7
8
{
"server": {
"url": "ws://43.25.35.231:6999/proxynt",
"password": "helloworld"
},
"client_name": "home_pc",
"log_file": "/mnt/proxynt/logs/nt_client.log"
}

  4. 执行以下命令在前台运行客户端程序:

1
nt_client -c nt_client_config.json

  如果安全组设置正确并且服务端已经正常启动,则可以看到 success 提示。

新增配置

  在浏览器访问以下地址,输入上方服务端配置文件中设置的 admin 密码(new_password)即可进入管理页面。

1
http://43.25.35.231:6999/proxynt/admin

  可以在已经有的 nginx 配置里添加一段,以通过域名访问管理页面:

1
2
3
4
5
6
location /proxynt {
proxy_pass http://127.0.0.1:6999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

  如果服务端和客户端服务都正常运行,则可以看到 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
2
cd /lib/systemd/system
vim proxynt_server.service

  3. 填入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nat_traversal server
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/nt_server -c /mnt/proxynt/nt_server_config.json

[Install]
WantedBy=multi-user.target

  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
2
cd /lib/systemd/system
vim proxynt_client.service

  3. 填入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=nat_traversal client
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/nt_client -c /mnt/proxynt/nt_client_config.json

[Install]
WantedBy=multi-user.target

  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

写在最后

  至此,你又有了一台公网服务器,性能用于学习足够了。

以上

随笔标题:ProxyNT 安装与使用

随笔作者:刘先玉

发布时间:2024年04月21日 - 22:12:39

最后更新:2024年04月21日 - 22:12:39

原文链接:https://liuxianyu.cn/article/proxynt.html