如何跨局域网访问服务?内网穿透、组网

目录

一、使用Frp

服务端配置 

客户端配置

安全地暴露内网服务

二、使用贝锐蒲公英组网


一、使用Frp

         frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

需要准备有公网ip的服务器,可以上阿里云购买云服务器

下载文件:

wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_arm64.tar.gz

根据自己的系统架构选择对应版本

github地址:https://github.com/fatedier/frp/releases/tag/v0.57.0

下载后解压并重命名:

#解压到当前目录下
tar -xzf frp_0.57.0_linux_arm64.tar.gz -C ./
#重命名
mv frp_0.57.0_linux_arm64  frp

服务端(具有公网ip的服务器)只需要两个文件 :frps  frps.toml  

客户端只需要两个文件 frpc  frpc.toml

客户端就是你需要通过服务端访问的内网服务

服务端配置 

进入frp目录下,编辑frps.toml文件 

vim frps.toml

 添加以下内容:

鉴权token可以通过以下命令生成一个随机十六进制字符串 ,也可以自己自定义

 #使用OpenSSL生成一个16字节(即128位)的随机十六进制字符串
 openssl rand -hex 16
#frps服务监听的本机端口
bindPort = 7000    

#frps服务web界面配置
webServer.addr = "0.0.0.0"
webServer.port = 7800
webServer.user = "admin"
webServer.password = "admin"

# frpc客户端连接鉴权token,默认为token模式,可选oidc
auth.token="3deb4dd2a5ebd3c5d64a53f5d07aabb2"

#日志打印配置
log.to = "./log"
log.level = "info"
log.maxDays = 7

保存退出

 对frps二进制文件加可执行权限:

sudo chmod +x frps

手动执行命令:

frps -c frps.toml

Ctrl+C  可停止服务

服务端Dashboard页面访问  IP +端口:  这里端口为7000,如果是云服务器记得加安全组和防火墙开放端口,用户名密码为配置admin

点击proxy的TCP可查看对应客户端连接情况

配置systemd,通过systemctl命令管理服务

sudo vim /etc/systemd/system/frps.service

添加以下内容,将你的frp文件存放路径修改为你的

[Unit]
# 服务名称,可自定义
Description = frps client
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/glacier/software/frp/frps -c /home/glacier/software/frp/frps.toml

[Install]
WantedBy = multi-user.target

重新加载守护进程

sudo systemctl daemon-reload

 启动frps服务端

sudo systemctl start frps

开机自启

sudo systemctl enable  frps

停止服务

sudo systemctl stop frps

重启服务

sudo systemctl restart frps

客户端配置

在需要访问的客户端服务器中添加对于文件

编辑frpc.toml文件:

#token需要与服务端的token一致
auth.token = "3deb4dd2a5ebd3c5d64a53f5d07aabb2"
# 服务端的公网ip
serverAddr = "服务端公网IP"
# 服务端的监听端口
serverPort = 7000

#客户端管理界面,配置0.0.0.0局域网其他人才能访问,近本地访问保持127.0.0.1
webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "admin" 
webServer.password = "admin"

[[proxies]]
# 名称 需要唯一
name = "glacier-ssh-tcp"、
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
#访问服务端被转到本机当前配置的对应端口
#比如此处是57002,那外网访问服务端公网ip:57002则会被转发访问本配置127.0.0.1:22端口
remotePort = 57002

# mysql-3306,访问服务端公网ip:57336,即可访问3306端口
[[proxies]]
name = "mysql-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 57336

客户端管理界面,配置0.0.0.0局域网其他人才能访问,近本地访问保持127.0.0.1

可以添加一个  [[proxies]]  使可以通过公网IP访问该客户端管理页面,但也需要重视安全考虑

手动启动 :frpc -c frpc.toml 

配置systemd守护进程与服务端差不多,只需修改对应frpc和frpc.toml 文件存在路径,重新加载守护进程,启动对应服务即可

启动后,浏览器访问客户端管理页面:IP + 端口 (用户名密码为配置admin):

点击configure可以在线配置,添加客户端代理端口等,修改好需要添加的配置后记得点击refresh

刷新服务端Dashboard页面可查看客户端连接情况

通过公网IP+客户端配置的remotePort 端口即可访问指定端口的服务,注意防火墙配置和云服务器的安全组配置

安全地暴露内网服务

通过创建一个只有授权用户能够访问的 SSH 服务代理,实现内网服务的安全暴露。

某些内网服务,如果直接暴露在公网上,可能存在安全风险。使用 stcp(secret tcp) 类型的代理可以让您安全地将内网服务暴露给经过授权的用户,这需要访问者也部署 frpc 客户端。

在需要将内网服务暴露到公网的机器上部署 frpc,并创建如下配置:

部署 frpc 客户端并配置

serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "secret_ssh"
type = "stcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22

在访问者机器上部署并配置 frpc

在想要访问内网服务的机器上也部署 frpc,并创建如下配置:

serverAddr = "x.x.x.x"
serverPort = 7000

[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
# 要访问的 stcp 代理的名字
serverName = "secret_ssh"
secretKey = "abcdefg"
# 绑定本地端口以访问 SSH 服务
bindAddr = "127.0.0.1"
bindPort = 6000

 这样授权的用户才能访问这个端口服务

更多详细配置可查看官方文档进行配置:frp

二、使用贝锐蒲公英组网

让异地组网更简单

安全、稳定,让企业快速组网
快速部署、即装即用;稳定可靠、安全合规

需要组网的内网服务器安装,我这里使用docker安装,更简单快速

注册账号登录蒲公英管理平台:

蒲公英管理 - 首页 (oray.com)

 添加成员后点击查看详情,复制对应的 UID

docker运行命令:

sudo docker run -d \
  --restart=always \
  --device=/dev/net/tun \
  --net=host \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_ADMIN \
  --env PGY_USERNAME="这是UID" \
  --env PGY_PASSWORD="这是你的密码" \
  --name pgy \
  bestoray/pgyenterprise

运行后,没有就像会自动拉去最新版镜像

忘记密码可以修改密码:

windows上安装对应windows版本软件,登录后即可实现组网,查看在线的服务器,通过对应ip即可访问对应服务器中的服务,左边灰色的表示离线,也可以通过蒲公英管理平台查看。

 

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值