基于docker的nps/npc内网穿透

大佬的源地址:https://github.com/ehang-io/nps

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。

服务端

首先你需要一台云服务器,建议阿里云购买,有大学生300元的代金劵,配置2v 2g就够了。

首先我们需要在云服务器上安装docker,这边我采用的是安装1panel面板,它会顺带安装docker的

1panel面板:1Panel – 现代化、开源的 Linux 服务器运维管理面板

由于我采用的是centos 7.9

所以我用:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh

进行下载安装。

安装后记得在云服务器控制台的安全组中开启相应的端口。

然后在浏览器中输入:http://ip:端口 进行访问。

或者,不想安装面板,也可以手动安装docker

# 安装docker,如果遇到问是否继续的就输入y来确定
apt install docker.io

# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker

# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v

如果还不行的话:

# 安装docker
curl -sSL https://get.daocloud.io/docker | sh

# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker

# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v

还是不行的话
手动配置:https://www.runoob.com/docker/ubuntu-docker-install.html

下载安装完后,docker换国内源

1panel:可以从docker的配置中添加:

也可以用:

# 创建或修改 /etc/docker/daemon.json 文件
apt install nano && nano /etc/docker/daemon.json

# 然后输入下面内容:(输入完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器)
{
  "registry-mirrors": ["https://docker.nju.edu.cn"]
}

# 重启docker服务
systemctl restart docker.service

进行手动修改。

然后搭建npc:

# 创建 /opt/nps 目录存放配置文件
mkdir /opt/nps

# 安装wget并且下载配置文件
apt install -y wget && wget https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/conf_1b8df8f61551218f81065d9b20288371.zip

# 解压配置文件到 /opt/nps 目录
apt install unzip && unzip conf_1b8df8f61551218f81065d9b20288371.zip -d /opt/nps

# 拉取 yisier1/nps 镜像
docker pull yisier1/nps

# 运行 nps 容器,配置文件夹 conf 在 /opt/nps/conf 目录下
docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf yisier1/nps

# 查看日志
docker logs nps

安装完后在浏览器打开:http://你服务器IP:8080

使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改/opt/nps/conf/nps.conf配置文件中的web_password)修改密码:

名称              定义
web_port	web管理端口
web_password	web界面管理密码
web_username	web界面管理账号
web_base_url	web管理主路径,用于将web管理置于代理子路径后面
bridge_port	服务端客户端通信端口
https_proxy_port	域名代理https代理监听端口
http_proxy_port	域名代理http代理监听端口
auth_key	web api密钥
bridge_type	客户端与服务端连接方式kcp或tcp
public_vkey	客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式
ip_limit	是否限制ip访问,true或false或忽略
flow_store_interval	服务端流量数据持久化间隔,单位分钟,忽略表示不持久化
log_level	日志输出级别
auth_crypt_key	获取服务端authKey时的aes加密密钥,16位
p2p_ip	        服务端Ip,使用p2p模式必填
p2p_port	p2p模式开启的udp端口
pprof_ip	debug pprof 服务端ip
pprof_port	debug pprof 端口
disconnect_timeout	客户端连接超时,单位 5s,默认值 60,即 300s = 5mins

登录npc web 后台后:

先新增客户端:

然后点击新增就可以了。

就会获得一个密钥。

客户端

Windows
首先下载Windows版的客户端:

github下载地址:Releases · yisier/nps (github.com)

我在需要运行NPS客户端的Windows设备的C盘根目录下建立一个名字叫【npc】的目录,将刚才下载的NPS客户端的文件解压后放到里面。这里注意,我们只要【npc.exe】文件即可。

然后以管理员身份运行命令提示符,输入 cd /npc 跳转到npc目录下,输入以下命令:

npc.exe install 客户端命令(记得不要复制./npc 只要后边的)

这样我们的npc就添加到系统服务里了,再找到 控制面板 – 管理工具 – 服务 里找到【nps内网穿透客户端】,找到【恢复】选项卡,按照下图中设置即可。设置完成后就可以启动服务了。

这样客户端就连接到了NPS的服务端了

linux

# 拉取 yisier1/npc 镜像
docker pull yisier1/npc

# 运行 npc 容器,按提示改好命令,如下图所示
docker run -d --name=npc --restart=always --net=host yisier1/npc -server=<ip:port> -vkey=<web界面中显示的密钥> <以及一些其他参数>

# 查看日志
docker logs npc

这样NPS客户端就算安装完成了

建立内网穿透隧道

按照上面的方法安装好客户端后就可以新建内网穿透隧道了,我这里以Windows的远程桌面服务为例,需要将TCP 3389端口映射出去,所以新建一个TCP隧道,你们根据自己实际需要选择TCP还是UDP。

客户端ID填写你上面添加的客户端的ID,服务端端口填写想映射到服务器的哪个端口,目标IP端口填写你客户端想要映射的端口,IP填127.0.0.1表示本机,也可以填局域网内的其他设备的IP,可将局域网内的其他设备端口映射出去,填好后点击新增就行。

接着你就可以通过这个服务器的这个端口访问到你内网的机器.

文末附加内容

评论

  1. 博主
    Windows Edge
    1 年前
    2024-4-25 2:46:43

    嘿嘿

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇