快捷搜索:  汽车  科技

内网 linux 如何使用 frp(实现内网穿透服务)

内网 linux 如何使用 frp(实现内网穿透服务)内网客户端(准备要穿透出去的设备),客户端,如内网IP:192.168.152.103。一台公网服务器(配置无要求网络稳定就行),服务器端,如公网IP:123.32.12.32。这里介绍使用frp工具。Ngrok可参考我另一篇文章:搭建ngrok服务器,实现内网穿透服务1:准备

一:frp简介

frp 是什么?

frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

市面上一些主流的内网穿透工具有:Ngrok,Natapp,花生壳,Ssh、autossh,Frp,Lanproxy,Spike。

这里介绍使用frp工具。

Ngrok可参考我另一篇文章:搭建ngrok服务器,实现内网穿透服务

二:安装frp

1:准备

一台公网服务器(配置无要求网络稳定就行),服务器端,如公网IP:123.32.12.32。

内网客户端(准备要穿透出去的设备),客户端,如内网IP:192.168.152.103。

2:下载解压安装包

gitlab地址:https://GitHub.com/fatedier/frp,可以在 https://github.com/fatedier/frp/releases 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

内网 linux 如何使用 frp(实现内网穿透服务)(1)

找到自己Linux合适的版本,下载,主流Linux版本基本上都是amd64。

#下载 wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz #解压 tar -zxvf frp_0.44.0_linux_amd64.tar.gz #进入目录 cd frp_0.44.0_linux_amd64/

进入文件夹,有两个名称文件frpc(c结尾代表client)和frps(s结尾代表server),分别是服务端程序和服务端配置程序。

需要将frpc拷贝至客户端,即内网服务器,或者在客户端直接下载也可以,客户端只需要使用frpc文件即可。

root@ubuntu:~/frp_0.44.0_linux_amd64# ls frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE三:配置服务器端和客户端,及启动

1:配置服务器端

这里是为服务端配置frp 只关注frps和frps.ini即可,原始最简单配置为。

cat frps.ini

[common] #隧道通道,服务器和客户端通过此端口通讯 bind_port = 7000

最简单也可以直接使用,先不配置其他测试使用先。

2:配置客户端

只关注frpc和frpc.ini即可,修改frpc.ini。

vim frpc.ini

原始配置已经有ssh的端口配置,所以修改server_addr为服务器IP即可。

[common] server_addr = 123.32.12.32 server_port = 7000 [ssh] type = tcp #本机IP local_ip = 127.0.0.1 #本机需要映射的端口22 local_port = 22 #远程服务器映射的端口为6000 remote_port = 6000

3:分别启动服务器端和客户端

注:服务器,如有防火墙,请开启7000端口和有需要的端口。

服务器运行启动:

./frps -c frps.ini

客户端运行启动:

./frpc -c frpc.ini

可以看到提示,都已经启动成功

内网 linux 如何使用 frp(实现内网穿透服务)(2)

内网 linux 如何使用 frp(实现内网穿透服务)(3)

测试ssh连接,这里用第三方工具xshell测试。

连接IP 为公网IP地址,端口为6000端口。

内网 linux 如何使用 frp(实现内网穿透服务)(4)

连接登录,即可登录到内网的192.168.152.103机器。

最简单的ssh端口映射就完成了。

四:升级配置

原始配置简单,但是如果需要其他功能,可自行添加,如下:

1:服务器端配置

vim frps.ini

修改如下

[common] bind_port = 7000 #http服务端口 vhost_http_port = 8088 #https服务端口 vhost_https_port = 8443 # dashboard网页管理界面,以及设置账户密码(非必须,未配置则直接进入) dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin #客户端需要设置一样的token值才能鉴权通过 token = 12345678

2:客户端配置

vim frpc.ini

修改如下:

[common] server_addr = 123.32.12.32 server_port = 7000 #token和服务器一致 token = 12345678 [ssh] type = tcp #本机IP local_ip = 127.0.0.1 #本机需要映射的端口22 local_port = 22 #远程服务器映射的端口为6000 remote_port = 6000 [web] type = http #本地http服务端口,默认80,按需配置 local_port = 80 # 绑定域名,注:配置http,必须需要域名,否则报错。如没有,可采用普通的tcp模式映射。 custom_domains = xxx [ftp] type = tcp local_ip = 127.0.0.1 #本机需要映射的端口21 local_port = 21 #远程服务器映射的端口为1121 remote_port = 1121

3:启动测试

分别启动客户端和服务器端

./frps -c frps.ini

客户端运行启动:

./frpc -c frpc.ini

浏览器打开web管理界面,http://123.32.12.32:7500/,输入账户密码,可查看端口映射相关情况。

内网 linux 如何使用 frp(实现内网穿透服务)(5)

同时访问:http://123.32.12.32:8088,即可访问跳转到到内网192.168.152.103机器的http服务。

如果内网有ftp服务,用公网123.32.12.32的1121端口,即可访问内网的ftp。

其他更多参数参考中文文档:https://gofrp.org/docs/

4:后台启动

当然对于正式环境,可以配置后台启动,并保存日志输出到相关文件。

服务端:

nohup ./frps -c frps.ini > /var/log/frp.log 2>&1 &

客户端:

nohup ./frpc -c frpc.ini > /var/log/frp.log 2>&1 &

到此,frp服务器搭建完成。

猜您喜欢: