异地组网+内网穿透实现远程访问内网服务器(完全免费)
创作时间:
作者:
@小白创作中心
异地组网+内网穿透实现远程访问内网服务器(完全免费)
引用
CSDN
1.
https://blog.csdn.net/qq_39068200/article/details/144848015
本文介绍了一种无需云主机、完全免费的实现远程访问内网服务器的方案。通过星空组网和frp工具,可以轻松实现异地组网和内网穿透,让外网设备能够安全地访问内网服务器。
0. 前言
- 当服务器处于内网且仅允许内网内主机ssh时,我们无法在外网访问服务器。
- 现有方案要么需要购买云主机进行内网穿透,要么异地组网后在外网主机进行ssh代理,都比较繁杂。
- 本方案无需云主机,完全免费。
- S1 和 S2 仅允许 P1 连接,P1、P2 可访问internet,目标是使用 P2 ssh 到 S1 和 S2。
- 4个设备的 ip 和端口 表示为:
- S1: S1_N1_ip ; S1_N1_port
- S2:S2_N1_ip ; S2_N1_port
- P1: P1_N1_ip ; P1_N1_port; P1_N2_ip ; P1_N2_port
- P2: P2_N2_ip ; P2_N2_port
- 大体原理是:
- P1 是 N2 局域网中的 内网穿透服务器。
- P1 是 N1 局域网中的 内网穿透客户端,将 S1 和 S2 穿透到 N2。
- P2 连接到 P1 的 用于内网穿透客户端 的端口,即可连接到 S1 和 S2。
- P2 仅进行异地组网,其他所有操作均在 P1 执行,P1 是 Linux系统 (windows 也可,但 Linux可能更稳定)。
1. 异地组网
- 星空组网、贝锐蒲公英 等工具可实现异地组网,推荐使用星空组网,可免费组网20台机器,而蒲公英仅允许3台。
官网: https://starvpn.cn/
教程:https://doc.starvpn.cn/#/register - 首先,在浏览器上,进入星空组网官网注册账号,进入后台管理,点击成员列表,点击添加成员,填写 名称、成员账号、登陆密码,需要创建两个成员,分别供P1和P2使用。
- 登录 P1, 在 P1 上安装星空组网客户端并运行:
# 安装
sudo curl -O https://file.starvpn.cn/stars/releases/deb/5.0.5/starvpn-5.0.5-amd64.deb
sudo dpkg -i starvpn-5.0.5-amd64.deb
# 登录
sudo stars login
# 输入用于P1的成员账号和登录密码
# 查看状态
sudo stars status
该命令输出的 IP 192.168.188.8 , 即为 P1_N2_ip
- 在 P2上登录星空组网客户端,windows系统登录较为简单,不做赘述。
需要注意的是,如果 P1 和 P2 组网成功,那么在客户端里点击 PING 会显示 地址可访问。
2. 内网穿透
该部分所有操作均在 P1 进行,使用 frp 工具。
frp: https://gofrp.org/zh-cn/docs/setup/安装 frp
# 下载,如下载有问题,也可下载至 P2 然后上传至 P1
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
# 解压
tar zxvf frp_0.61.1_linux_amd64.tar.gz -C ./
# 赋予执行权限
cd frp_0.61.1_linux_amd64
sudo chmod +x frpc
sudo chmod +x frps
- 编写frp服务器配置文件,需创建 2 个配置文件,分别用以穿透 S1 和 S2
# 如没有 vim ,可运行 sudo apt install vim
sudo vim server_s1.toml
# 输入
bindPort = 30001
同样地,创建 server_s2.toml,输入 bindPort = 30002,bindPort 可任意设置
- 编写:,也需创建 2 个配置文件,分别用以穿透 S1 和 S2
sudo vim client_s1.toml
# 输入
serverAddr = "127.0.0.1"
serverPort = 30001
[[proxies]]
name = "s1"
type = "tcp"
localIP = "S1_N1_ip"
localPort = S1_N1_port
remotePort = 30003
同样地,创建 client_s2.toml,输入 serverPort = 30002,remotePort =30004 ,localIP 、localPort 相应更改。
- 开放端口,必须开放端口,不然无用。本文以ufw软件开放端口,也可使用其他工具
sudo ufw allow 30001:30004/tcp
- 运行frp服务器
sudo ./frps -c server_s1.toml
请注意,如需终止服务器,请输入ctrl+c,如输入其他,会造成 30001 端口占用。然后,新开一个终端,执行:
cd frp_0.61.1_linux_amd64
sudo ./frps -c server_s2.toml
- 运行frp客户端
新开一个终端,执行:
cd frp_0.61.1_linux_amd64
sudo ./frpc -c client_s1_toml
同样地,对于S2,也执行相同操作。
3. 测试
在P2上,打开cmd,输入:
ssh S1_N1_user@P1_N2_ip -p 30001
即可连接上S1,对于S2,操作类似,不做赘述。
4. 更进一步------后台运行所有frp服务
- 第三章的命令需要同时运行4个终端且不能中断,不适合长期运行。
- 本文使用nohup命令使所有frp服务后台运行,当然也可使用.service,可自行探索。
cd frp_0.61.1_linux_amd64
# 创建用于存储log的文件夹
mkdir logs
# 创建服务器一键运行脚本
cd frp_0.61.1_linux_amd64
sudo vim start_servers.sh
# 输入
nohup ./frps -c server_s1.toml > logs/server_s1.txt 2>&1 &
nohup ./frps -c server_s2.toml > logs/server_s2.txt 2>&1 &
# 存储
# 创建客户端一键运行脚本
cd frp_0.61.1_linux_amd64
sudo vim start_clients.sh
# 输入
nohup ./frpc -c client_s1.toml > logs/client_s1.txt 2>&1 &
nohup ./frpc -c client_s2.toml > logs/client_s2.txt 2>&1 &
# 存储
# 赋予执行权限
cd frp_0.61.1_linux_amd64
sudo chmod +x start_servers.sh
sudo chmod +x start_clients.sh
# 执行脚本
cd frp_0.61.1_linux_amd64
sudo ./start_servers.sh
sudo ./start_clients.sh
- 如需一键杀死frp服务:
sudo pkill -9 frp
5. 结束
- 本文实现了无需云服务器,免费实现访问内网服务器。
- 如需增加新的设备访问内网服务器,则只需将新的设备接入星空组网的虚拟子网。
热门推荐
中国香妆协会秘书长穆旻:我国日用香料香精标准体系概况
为什么高尿酸越来越多?这4种蔬菜的嘌呤含量比肉还高!尽量少吃
2025成都东站到南充站火车时刻表,从成都东到南充高铁最新消息
失业金发放模式:一次性拿还是按月拿更合适?
4岁女童确诊糖尿病酮症酸中毒!这些早期信号家长需警惕
桃仁的功效与作用
缬沙坦联合氨氯地平对于高血压伴糖尿病的好处
桃木为什么能辟邪
蔺相如:智慧与勇气的化身
项目运营管理如何提升
掌握同理心倾听,解锁满意度提升之道
法国大革命前的社会等级划分——法国的旧政权等级分布
高校国旗护卫队:“燃系青年”是怎样练成的?
石棉县十大旅游景点
租房能用公积金吗?如何使用公积金租房?
2024最后一天,湖北省博物馆献上大礼
手机连不上WiFi?五种可能原因及解决方案
科学养猪的现代化技术与方法:提升养猪效益的新方向
一口气看完7集,《鱿鱼游戏2》评分解禁,2大原因造成口碑崩塌
为什么程序员越老越不值钱?
紫微斗数福德宫详解
无畏契约段位1和3哪个高?详解无畏契约段位系统
2024年中国出生人口预测:可能仅有788万,人口负增长加剧
北京大学张锦团队Matter:AI技术推动碳纳米管研究实现高效优化与可控制备
病假、工伤、事假、婚假、丧假、探亲假、保胎假、产假工资标准
手机玻璃镜片分类及制作工艺,你知多少?
最新“复兴号”动车组大全集
利率本数对经济有何影响?如何根据利率本数制定合理的财务策略?
高铁和动车有什么区别?不仅仅是G和D的区别,为何总被混为一谈?
糖尿病治疗新途径!中药虎杖中提取多糖,调节肠道菌群对抗2型糖尿病