开发调试、远程访问、内网穿透解决方案集合

578 阅读10分钟

前言

因为偶尔、临时性需要使用远程访问、内网穿透等,本着免费优先付费次之的原则,在互联网搜寻、体验、使用了很多款产品,最终还是收获了满意的解决方案,得到了惊人的收获,可选方案30+以上。另外,这里仅分享一部分商用且提供免费使用的解决方案。

注意:这里记录部分内网穿透的具体详细操作使用,方便再次需要时快速准备好环境,仅供参考。

Cpolar

下载安装

访问cpolar官网地址: https://www.cpolar.com注册账号并登录 在这里插入图片描述

这里因为使用Linux系统,故以Linux演示记录使用

使用一键脚本安装命令

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

启动cpolar服务

sudo systemctl start cpolar

查看cpolar服务运行状态

[root@master ~]# systemctl status cpolar
● cpolar.service - Cpolar Service
   Loaded: loaded (/etc/systemd/system/cpolar.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2024-01-12 17:31:14 CST; 29s ago
     Docs: https://www.cpolar.com/docs
 Main PID: 9870 (cpolar)
   CGroup: /system.slice/cpolar.service
           ├─9870 cpolar: master process
           └─9887 cpolar: worker process

1月 12 17:31:14 master systemd[1]: Started Cpolar Service.

设置cpolar服务自启动

sudo systemctl enable cpolar

删除cpolar服务

# 禁用服务
sudo systemctl disable cpolar

# 停止服务
sudo systemctl stop cpolar

# 清理配置:需要删除 cpolar 服务相关的配置文件或数据
rm /etc/systemd/system/cpolar.service -rf
rm /usr/local/bin/cpolar -rf
rm /usr/local/etc/cpolar/cpolar.yml  -rf
rm /var/log/cpolar/access.log -rf

配置与使用

访问http://局域网ip:9200,使用cpolar账号登录,登录后即可看到cpolar web 配置界面 在这里插入图片描述 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理的创建隧道:

隧道名称:可自定义,注意不要与已有的隧道名称重复

协议:http

本地地址:22 (本地ssh默认端口)

域名类型:默认随机临时TCP端口

地区:看需求选择,例如选择China Top

在这里插入图片描述

创建成功后,打开左侧在线隧道列表,查看创建隧道后生成的地址,这个地址就是公网连接地址 在这里插入图片描述 公网远程连接测试

连接IP: 19.tcp.cpolar.top

端口:14259

在这里插入图片描述

Ngrok

购买隧道

访问Ngrok的官网:https://natapp.cn/,注册账号并登录 在这里插入图片描述

购买隧道,选择免费、付费均可。然后根据需要选择隧道协,这里选择web隧道协议 在这里插入图片描述 购买成功后,在我的隧道查看。注意:authtoken是隧道登录凭证,后面配置会用到 在这里插入图片描述

下客户端

根据对应系统下载Ngrok客户端,这里下载Windows 64位的客户端 在这里插入图片描述

配置与使用

1.使用配置文件方式

解压至任意目录,得到natapp.exe。同时在natapp.exe同级目录创建config.ini文件

config.ini文件内容如下,主要填入authtoken的值

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=                      #对应一条隧道的authtoken
clienttoken=                   #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

然后直接双击natapp.exe即可,然后就可以看到连接成功 在这里插入图片描述 2.使用命令方式:

natapp.exe同级目录,进入命令提示符窗口执行如下命令

natapp -authtoken=xxxxx

再看Ngrok控制台,即可发现隧道连接正常 在这里插入图片描述

此时访问Ngrok给出的地址: http://9nv4xg.natappfree.cc即可将其映射到本机的:127.0.0.1:8080

ZeroTier

ZeroTier是一种虚拟专用网络解决方案,可让多台设备在一个虚拟网络中安全通信。

注册与安装

访问官网:https://www.zerotier.com/,注册账号并登录 在这里插入图片描述 访问地址:`www.zerotier.com/download/,根…

创建虚拟网络

创建一个Network

将创建一个具有随机 ID 和随机名称的虚拟网络。单击该虚拟网络即可转至该网络的详细信息页面。

在这里插入图片描述

加入虚拟网络

点击ZeroTier的图标,右键选择加入刚刚创建的虚拟网络 在这里插入图片描述 输入创建的网络ID 在这里插入图片描述

配置授权

在网络详情中,在Members处即可查看:刚刚“加入”的节点信息 在这里插入图片描述 勾选授权与起个名称方便记忆,然后就会得到一个IP 在这里插入图片描述 同理,再将另一个设备连接到同一个ZeroTier网络,然后它们就能够通过ZeroTier进行互相访问。

花生壳

Centos系统

下载命令行:

wget "https://dl.oray.com/hsk/linux/phddns_5.3.0_amd64.rpm" -O phddns_5.3.0_amd64.rpm

安装:

rpm -ivh phddns_5.3.0_amd64.rpm

安装后获取到SN码

+--------------------------------------------------------+
|                Oray Phtunnel Linux 5.3.0               |
+--------------------------------------------------------+
|     SN: oray123456786fb9   Default password: admin     |
+--------------------------------------------------------+
| Usage: phddns(start|status|stop|restart|reset|version) |
+--------------------------------------------------------+
|       Remote Management Address http://b.oray.com      |
+--------------------------------------------------------+

卸载:

yum remove phddns

扩展功能:

# 启动
phddns start
# 状态
phddns status
# 停止
phddns stop
# 重启
phddns restart
# 重置
phddns reset
# 开机自启动
phddns enable
# 关闭开机自启动
phddns disable
# 版本
phddns version

例如:

[root@master .work]# phddns status
 +--------------------------------------------------+
 |          Oray PeanutHull Linux 5.3.0             |
 +--------------------------------------------------+
 |              Runstatus: ONLINE                   |
 +--------------------------------------------------+
 |              SN: oray123456786fb9                |
 +--------------------------------------------------+
 |    Remote Management Address http://b.oray.com   |

Ubuntu系统

下载命令行:

wget "https://dl.oray.com/hsk/linux/phddns_5.3.0_amd64.deb" -O phddns_5.3.0_amd64.deb

安装:

sudo dpkg -i phddns_5.3.0_amd64.deb

卸载:

dpkg -r phddns

扩展功能:

# 启动
phddns start
# 状态
phddns status
# 停止
phddns stop
# 重启
phddns restart
# 重置
phddns reset
# 开机自启动
phddns enable
# 关闭开机自启动
phddns disable
# 版本
phddns version

使用

花生壳控制台

访问花生壳控制台https://console.hsk.oray.com/device,使用统一的贝锐登录 在这里插入图片描述 点击添加设备,输入安装时产生SN码 在这里插入图片描述 点击未登录 在这里插入图片描述 点击登录激活设备 在这里插入图片描述

SN码登录

浏览器访问b.oray.com ,选择花生壳登录 在这里插入图片描述 输入花生壳在安装时产生SN码与默认登录密码admin登录。 在这里插入图片描述 这种方式登录后要求激活,也就是与已注册的贝锐账号进行一个绑定。

添加映射

点击内网穿透,添加映射 在这里插入图片描述 这里配置一个SSH服务映射 在这里插入图片描述 完成后得到如下列表 在这里插入图片描述 使用映射的外网地址进行远程连接

连接IP:***.zicp.fun

端口:56424

在这里插入图片描述

Loophole

Loophole官网:https://loophole.cloud/download

通过无图像化方式安装 在这里插入图片描述 通过桌面图像化方式安装 在这里插入图片描述

通过CLI方式安装

下载Loophole

wget https://github.com/loophole/cli/releases/download/1.0.0-beta.15/loophole-cli_1.0.0-beta.15_linux_64bit.tar.gz

解压

tar xf loophole-cli_1.0.0-beta.15_linux_64bit.tar.gz

重命名

mv loophole-cli_1.0.0-beta.15 loophole-cli

查看loophole-cli目录

[root@master loophole-cli]# ls
LICENSE  loophole  README.md

登录与注销

执行loophole account login命令进行登录

[root@master loophole-cli]# ./loophole account login
Please open https://loophole.eu.auth0.com/activate and use JLNR-QXPZ code to log in

根据提示,访问https://loophole.eu.auth0.com/activate地址,输入Code码:JLNR-QXPZ进行登录 在这里插入图片描述 登录后要求登录账号,这里可以选择GitHub、Google账号登录,也可以注册一个账号再登录 在这里插入图片描述 完成后,登录命令处可以看到提示登录成功

[root@master loophole-cli]# ./loophole account login
Please open https://loophole.eu.auth0.com/activate and use JLNR-QXPZ code to log in2:20PM INF Logged in successfully

不再使用时,应该使用命令进行注销登录操作

[root@master loophole-cli]# ./loophole account logout
2:22PM INF Logged out successfully

简单使用

在登录情况下,简单运行以下命令行,将本地运行并监听于8888端口的网站发布至公网,loophole默认将生成一个随机的子域名

[root@master loophole-cli]# ./loophole http 8888
Loophole - End to end TLS encrypted TCP communication between you and your clients

Registering your domain... Success!
Starting local proxy server...  Success!
Initializing secure tunnel...  Success!


Forwarding https://9a755846d45f7e1edb086628ccb14d5a.loophole.site -> http://127.0.0.1:8888
Press CTRL + C to stop the service
Logs: 
2:23PM INF Awaiting connections...
2:23PM INF Succeeded to accept connection over HTTPS

Loophole支持自定义子域名以及生成网址二维码。

--hostname 指定子域名为string

--qr指定隧道成功建立后显示网址二维码
[root@master loophole-cli]# ./loophole http 8888 --hostname dev-ssh  --qr
Loophole - End to end TLS encrypted TCP communication between you and your clients

Registering your domain... Success!
Starting local proxy server...  Success!
Initializing secure tunnel...  Success!


Forwarding https://dev-ssh.loophole.site -> http://127.0.0.1:8888

2:29PM INF Scan the below QR code to open the site:

█████████████████████████████████
█████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▀ ▄  ██ ▄▄▄▄▄ ████
████ █   █ █▄  ▀██▀███ █   █ ████
████ █▄▄▄█ ██▀▄ █▄  ██ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀ ▀ ▀ █ █▄▄▄▄▄▄▄████
████ ▄▄█▄ ▄▄ █ █▀ ▀▄▄  ███▄█▀████
████ ▀▄▀▄█▄ █▄█▀█▀▄▀▄▄▄█▄█▄ ▄████
████▄███▄ ▄▄███▄ ▄█▄ ▄ ██ █▄ ████
████▄▀██▄ ▄███▀██▀▄██  ▄▀█▄ ▄████
████▄██▄▄▄▄▄ █▀█▀▄██ ▄▄▄  █▀▀████
████ ▄▄▄▄▄ █ ███  ▀▄ █▄█  █▄▄████
████ █   █ █▄▄▄▄▄▄██  ▄   ▀▄█████
████ █▄▄▄█ █ █▄▀▀▀██ █▀█ ▀█▀▄████
████▄▄▄▄▄▄▄█▄███▄▄█▄▄▄▄▄███▄▄████
█████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

Press CTRL + C to stop the service
Logs: 
2:29PM INF Awaiting connections...
2:29PM INF Succeeded to accept connection over HTTPS

注意:

Loophole默认监听127.0.0.1,可直接输入`0.0.0.0``localhost`等来更改

Loophole默认采用TLS加密普通HTTP流量,如果待发布的网站已开启了https,可通过`--https`选项指定以避免重复加密。
[root@master loophole-cli]# ./loophole http 8888 0.0.0.0 --https
Loophole - End to end TLS encrypted TCP communication between you and your clients

Registering your domain... Success!
Starting local proxy server...  Success!
Initializing secure tunnel...  Success!


Forwarding https://476b4c4dff2ccff6c3f9fe502c4dd5e5.loophole.site -> https://0.0.0.0:8888
Press CTRL + C to stop the service
Logs: 
2:26PM INF Awaiting connections...
2:26PM INF Succeeded to accept connection over HTTPS

身份验证

Loophole支持http基本身份验证,通过-u、-p或--basic-auth-username、--basic-auth-password分别指定用户名、密码。

[root@master loophole-cli]# ./loophole http 8888 -u root -p 12345
Loophole - End to end TLS encrypted TCP communication between you and your clients

Registering your domain... Success!
Starting local proxy server...  Success!
Initializing secure tunnel...  Success!


Forwarding https://9a935513f0b597ac4a4d1b3a6ad4b293.loophole.site -> http://127.0.0.1:8888
Press CTRL + C to stop the service
Logs: 
2:30PM INF Awaiting connections...
2:30PM INF Succeeded to accept connection over HTTPS

访问该地址,出现了身份验证 在这里插入图片描述 loophole支持webdav协议,可以指定将某目录暴露于公网,然后通过身份验证来保护安全,经过认证后访问目录文件

[root@master loophole-cli]# ./loophole webdav /root -u root -p 123456
Loophole - End to end TLS encrypted TCP communication between you and your clients

Registering your domain... Success!
Starting WebDav server Success!
Starting local proxy server...  Success!
Initializing secure tunnel...  Success!


Forwarding https://57d79f94bc9c9f8bfac958b38d337ad5.loophole.site -> /root
Press CTRL + C to stop the service
Logs: 
2:32PM INF Awaiting connections...
2:32PM INF Succeeded to accept connection over HTTPS

贝锐蒲公英

第一台设备

Redhat / CentOS Linux(X86_64) 下载与安装

# 下载
wget https://pgy.oray.com/softwares/153/download/2156/PgyVisitor_6.2.0_x86_64.rpm
# 安装
rpm -ivh PgyVisitor_6.2.0_x86_64.rpm
# 卸载
rpm -e PgyVPN

Ubuntu Linux(X86_64)下载与安装

# 下载
wget https://pgy.oray.com/softwares/153/download/2156/PgyVisitor_6.2.0_x86_64.deb
# 安装
dpkg -i PgyVisitor_6.2.0_x86_64.deb
# 卸载
dpkg -r PgyVPN

运行命令:

[root@master .work]# pgyvisitor
Copyright © 2002-2024 Oray. All Rights Reserved.

-h --help 使用帮助
-v --version 获取版本

以下是常见的 pgyvisitor 命令

login         登录
logout        退出
logininfo     显示历史登录设备信息
autologin     设置自动登录
certcheck     启用或禁用证书检验
bypass        显示旁路信息
getmbrs       显示组网成员信息
showsets      显示设置

查看日志信息:

cd /var/log/oray/

使用贝锐账号进行登录

[root@master .work]# pgyvisitor login
请输入贝锐账号/UID:
123454678910
请输入密码:
登录成功

查看组网信息

[root@master ~]# pgyvisitor getmbrs -m

VPN组名称:默认网络
---------------------组成员信息-------------------
*********************在线成员*********************

(蒲公英访问端)名称:master(本机)
虚拟IP地址:172.16.1.51

第二台设备

访问https://pgy.oray.com/download#visitor下载Windows客户端 在这里插入图片描述 使用贝锐账号直接登录即可,可以发现创建的默认网络组中存在2台设备信息 在这里插入图片描述 使用如下IP地址即可连接到第一台设备。 在这里插入图片描述 在第一台设备查看设备信息,得到第二台设备IP,使用该IP即可连接

[root@master ~]# pgyvisitor getmbrs -m

VPN组名称:默认网络
---------------------组成员信息-------------------
*********************在线成员*********************

(蒲公英访问端)名称:master(本机)
虚拟IP地址:172.16.1.51

(蒲公英访问端)名称:XXX(转发)
虚拟IP地址:172.16.1.126

控制台

访问贝锐蒲公英控制台:https://console.sdwan.oray.com/zh/main,可以发现2台异地设备网络组网成功,同时可以进行其他管理操作。 在这里插入图片描述

开源

使用开源方式搭建内网穿透服务可能是最好的方式,可选技术:nps、frp等,只不过其需要一台公网服务器,等以后什么合适了再记录。

注意:通常商用提供的免费服务,甚至是付费服务,其提供的带宽都是很小很小的,还不如第三方搭建的内网穿透服务,他们就是利用NPS、FRP等搭建的。

NPS

GitHub:https://github.com/ehang-io/nps 在这里插入图片描述

FRP

GitHub:https://github.com/fatedier/frp 在这里插入图片描述

其他内网穿透

内网穿透的产品、服务还有很多,上面列举了一些常见的、商用且提供免费的远程访问、内网穿透解决方案。除了上述方案,还有一下其他方案,仅供参考。

灵曜内网穿透

官网:http://http01.cn/ 在这里插入图片描述

神卓互联

官网:https://www.shenzhuohl.com/ 在这里插入图片描述

网云穿

官网:https://login.xiaomy.net/ 在这里插入图片描述

闪库

官网:https://www.ipyingshe.com/ 在这里插入图片描述

蜻蜓映射

官网:https://flynat.51miaole.com/ 在这里插入图片描述