内网穿透

tool

# 一、内网穿透

NAT(Network Address Translation)

# 内网穿透工具

  • NPS-NPC
  • FRP
  • Cpolar(不推荐)

# 二、NPS与NPC

# 1、简介

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。

目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等。

nps带有功能强大的web管理端。

  • NPS:一台有公网IP的服务器
  • NPC:需要穿透的内网服务器

2

# 2、特点

  • Go语言编写
  • 支持跨平台
  • 支持多种协议的代理
  • web管理端

# 3、使用

# 三、FRP

# 1、简介

# 2、使用

# 1)部署服务端frps

部署 下载镜像

docker pull snowdreamtech/frps:0.52.3
1

安装

mkdir -p /usr/local/docker/resource/frp/frps
cd /usr/local/docker/resource/frp/frps
vi frps.toml
vi docker-compose.yml
1
2
3
4

frps.toml

bindPort = 7000
webServer.addr = "0.0.0.0"
webServer.port = 7001
webServer.user = "admin"
webServer.password = "admin"
vhostHTTPPort = 8081
1
2
3
4
5
6

docker-compose.yml

version: '3'
services:
  frps:
    restart: always
    image: 'snowdreamtech/frps:0.52.3'
    container_name: frps
    volumes:
      - ./frps.toml:/etc/frp/frps.toml
    ports:
      - "7000:7000"
      - "7001:7001"
      - "8081:8081"
1
2
3
4
5
6
7
8
9
10
11
12

说明:

# 2)部署客户端frpc

部署 下载镜像

docker pull snowdreamtech/frps:0.52.3
1

安装

mkdir -p /usr/local/docker/resource/frp/frps
cd /usr/local/docker/resource/frp/frps
vi frps.toml
vi docker-compose.yml
1
2
3
4

frps.toml

serverAddr = "39.99.111.122"
serverPort = 7000
webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"

[[proxies]]
name = "Nexus-http"
type = "http"
localIP = "192.168.0.200"
localPort = 8081
customDomains = ["39.99.111.122"]

1
2
3
4
5
6
7
8
9
10
11
12
13
14

docker-compose.yml

version: '3'
services:
  frpc:
    restart: always
    image: 'snowdreamtech/frpc:0.52.3'
    container_name: frpc
    volumes:
      - './frpc.toml:/etc/frp/frpc.toml'
    ports:
      - "7400:7400"
1
2
3
4
5
6
7
8
9
10

说明:

# 四、Cpolar(不推荐)

# 1、简介

官网 (opens new window)

NPS官方源码地址-GitHub (opens new window)

NPS官方下载 (opens new window)

公开一个本地Web站点至公网。

只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关等云端服务,提高您的编程效率。

# 2、使用

# 1)下载安装

在内网服务器,下载安装。

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
1

向系统添加服务

sudo systemctl enable cpolar
1

启动Cpolar服务

sudo systemctl start cpolar
1

启动成功后,访问地址:【内网IP:9200】

# 2)注册Cpolar账户

注册 (opens new window)

输入用户名、登录邮箱(账号)、联系电话、密码。

登录 (opens new window)

a、选择免费套餐;

b、在验证菜单 (opens new window),复制验证token。

c、在内网服务器执行该认证。

cpolar authtoken xxxxxxxYmQtNGzLTgwMxxxxxxxxxxxxx
1

# 3)配置公网地址

a、添加隧道

点击左侧仪表盘的隧道管理—创建隧道,创建一个Nexus的公网地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复;
  • 协议:选择红框中显示的http;
  • 本地地址:内网要穿透的服务的端口,例:8081;
  • 域名类型:选择随机域名;
  • 地区:选择China;

注意:

  1. 使用随机域名,不固定,隔一段时间就变。(免费的蛋糕你还想一直吃...)
  2. 若有自己的域名,建议选择二级子域名、自定义域名。(但这2种类型,需要把当前Cpolar账户升级为付费版哦)

b、访问域名

创建隧道成功后,点击左侧仪表盘的状态—在线隧道列表,可查看到刚生成的隧道有2种访问方式(http和https)。

任意复制一个即可进行访问。

自此,一个内网系统,即可通过Cpolar,生成域名进行互联网访问!