使用场景:
有一台本地服务器,性能较好、内存较大,但只能在局域网内访问,外网无法访问,就失去了使用价值。
另有一台阿里飞天计划白嫖的阿里云服务器,可以外网访问,但性能太差和内存太小,也基本没什么使用价值。
如何将他们结合起来呢?
安装很简单,全程复制粘贴就行
安装步骤:
nps 分为 server(服务端 [安装在能访问外网的机器上])和client(客户端 [安装在不能访问外网的机器上])
- 在阿里云服务器上安装nps(server):
首先你得有docker !
docker 安装教程很多,随便找 (也可以不用docker,参考https://developer.aliyun.com/article/878758)
之后执行以下内容安装nps:
# 创建 /opt/nps 目录存放配置文件 mkdir /opt/nps # 安装wget并且下载配置文件 yum install -y wget && wget https://img.zeruns.tech/down/conf.zip # 解压配置文件到 /opt/nps 目录 unzip conf.zip -d /opt/nps # 拉取 ffdfgdfg/nps 镜像 docker pull ffdfgdfg/nps # 运行 nps 容器,配置文件夹 conf 在 /opt/nps/conf 目录下 docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf ffdfgdfg/nps
然后docker ps 看看有没有,有的话应该就安装好了
然后在浏览器里输入 你的阿里云ip:8080 就进入nps的管理界面了
例如:
然后登录 admin 密码 123,这个在刚刚下载的conf里的nps.conf里可以改
- 在本地服务器上安装nps(client):
# 可以直接wget 也可以去链接里手动下载,然后rz上传
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
下载之后 tar -zxvf linux_amd64_client.tar.gz 解压就行,自行调整压缩包的名字
然后换成自己的ip启动就行:
后面的vkey 也要换,自己的去nps管理页面里找,我这里是加了nohup后台启动和log日志
启动的记得切到nps的目录下:
# 注意 8.130.119.200 是我的阿里云服务器ip,要换成你自己的,vkey也要换
nohup ./npc -server=8.130.119.200:8024 -vkey=ilwna489c8t9xmzc -type=tcp > log 2>&1 &
安装大功告成!
然后再nps管理页面添加端口映射就ok了
客户端id填客户端里面那个就行
比如图中的第一条,指将本地大内存服务器的22端口映射到能访问外网的阿里云服务器的40022端口上,通过访问阿里云服务器ip:40022即可访问本地服务器的22端口远程连接!
大功告成!此后就可以愉快的通过外网访问本地的服务器了!
补充:
方法一:(该方法不一定可行,方法二亲测有效)
防止服务器重启后端口映射失效,可以添加以下内容:
创建一个名为nps.service的新unit文件,命令如下:
vi /etc/systemd/system/nps.service
将以下内容复制并粘贴到该文件中:
[Unit]
Description=nps
After=network.target
[Service]
ExecStart=/bin/bash -c "nohup /opt/nps -server=8.130.119.200:8024 -vkey=ilwna489c8t9xmzc -type=tcp > npc.log 2>&1 &"
#注意!!! 此处的引号内脚本换成你自己的
[Install]
WantedBy=multi-user.target
保存并关闭该文件。
重新加载systemd守护程序以使其读取新添加的unit文件,执行命令:
sudo systemctl daemon-reload
启用nps服务,使其在启动时自动启动,执行命令:
sudo systemctl enable nps.service
现在,nps服务将在CentOS 7服务器重启后自动启动。
方法二:
在 /etc/rc.d/rc.local 文件中加入启动nps的命令
[root@localhost rc.d]# cat /etc/rc.d/rc.local | tail -2
# start nps service daemon when computer start
nohup /opt/nps/npc -server=8.130.119.200:8024 -vkey=ilwna489c8t9xmzc -type=tcp > log 2>&1 &
注意:rc.local的权限要正确,如图:
按数字来说,应该是:744