快速优雅的实现内网穿透(FRP)

在短短的一年时间中,项目上需要使用内网穿透的次数就达到了5次,所以作为一个彩笔运维我觉得还是有必要记录一下:

首先需要知道什么是内网穿透:

内网是内部建立的局域网络或办公网络,外网是通过一个网关或网桥与其他网络系统连接,相对于自己的内网来说,其他网络系统称为外网。

内网穿透即NAT穿透,在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。通过映射端口,让外网的电脑找到处于内网的电脑。

内网穿透动态域名解析服务,简称NAT-DDNS,是一种基于动态域名服务(DDNS)和网络地址转换(NAT)的服务器内外网动态映射方法。

说了这么多也不知道你明白没如果没有看明白,那么简单一点 。
就是通过外网访问你个人或者公司的内部资源。

准备工作: 你需要有一个可以使用的外网服务器 linux 或者 windows, windowsserver都可以,因为我们需要使用它做载体,但是 他必须要能够互联网访问

那现在我来假设两个服务器 001(拥有互联网资源重点 :该服务器配备了固定IP)002(内部资源服务器)

002是我们之间通过互联网无法访问的 尤其是在 疫情期间 很多人在家办公需要访问公司的内部资源

具体步骤 :

首先下载对应系统的FRP压缩包地址:

https://github.com/fatedier/frp/releasesicon-default.png?t=LA92https://github.com/fatedier/frp/releases

  1. 下载到对应的目录后解压缩

快速优雅的实现内网穿透(FRP)插图1

2文件下授权

3我这里服务器端和客户端都放在了/usr/local/frp/目录下

4# 服务器端给执行文件添加权限

cd /usr/local/frp sudo chmod 777 frps

#客户端给执行文件添加权限

cd /usr/local/frp sudo chmod 777 frpc

修改001配置文件

公网服务器端:

# 打开服务器端配置文件

vim ./frps.ini

# 我的填写内容如下:

[common]

bind_port = 7000 # 服务端与客户端通信端口

dashboard_port = 7500 # 后台管理端口

dashboard_user = admin # 后台登录用户名

dashboard_pwd = admin

vhost_http_port = 7002 # http穿透端口

vhost_https_port = 7003 # https穿透端口

max_pool_count = 50

token = aaa123 # 身份验证令牌,frpc要与frps一致

tcp_mux = true

log_file = /usr/local/frp/frps.log # 日志相关

log_level = info

log_max_days = 3

authentication_timeout = 0 # 服务器与客户端时间相差15min会连接失败,0表示不验证

subdomain_host = test.xyz # 注册的域名

privilege_mode = true

注意:访问的端口一定要开放

启动frps:

# 前台启动

./frps -c ./frps.ini

# 后台启动

./frps -c ./frps.ini &

启动成功后,可以访问后台管理界面(这里举例地址:www.nosql.xyz:7500)( 会让输入用户名密码在配置文件里面frps.ini)

快速优雅的实现内网穿透(FRP)插图2

配置002客户端:

客户端(内网主机):

# 打开客户端配置文件

vim ./frpc.ini

# 我的填写内容如下:

[common]

server_addr = 10.10.xxx.xxx # 公网服务器ip

server_port = 7000 # 公网服务端通信端口

token = aaa123 # 令牌,与公网服务端保持一致

tcp_mux = true

log_file = /usr/local/frp/frpc.log # 日志相关

log_level = info

log_max_days = 3

authentication_timeout = 0 # 服务器与客户端时间相差15min会连接失败,0表示不验证

[ssh] # 添加ssh节点

type = tcp

local_ip = 192.168.xxx.xxx

local_port = 22

remote_port = 7001 # 指明由公网服务器的7001端口代理

[web01] # 添加web节点

type = http

local_ip = 192.168.xxx.xxx

local_port = 80 # 本地8080端口可以通公网服务器7002端口访问,这里我的80跑着项目

subdomain = web01 # 自定义子域名

启动frpc

# 前台启动

./frpc -c ./frpc.ini

# 后台启动

./frpc -c ./frpc.ini &

测试web01节点:

请求地址:http://web01.nosql.xyz:7002 能访问到内网的项目首页

快速优雅的实现内网穿透(FRP)插图3

需要说明的是 如果需要多个映射的端口那么你只需要增加对应的ssh节点即可 其他的不需要改动

在此预祝你成功。

你都看到这里了 你不点个赞嘛 谢谢小哥哥小姐姐O(∩_∩)O哈哈~

原文链接:https://blog.csdn.net/m0_62755018/article/details/122079805

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享