linux下frp实现内网穿透

frp简介

frp是什么?
frp采用Golang语言编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。
frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP,UDP,HTTP,HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
市面上一些主流的内网穿透工具有:Ngrok,Natapp,花生壳,Ssh、autossh,Frp,Lanproxy,Spike。

这里介绍使用frp工具。

安装frp

1.准备

我的frp是在局域网内实现的,如要实现公网,可以参考别的教程

一台服务器,服务器端,如IP为:192.168.80.133.
一台客户端服务器,客户端,如IP为:192.168.80.132.

2:下载解压安装包

gitlab地址:https://github.com/fatedier/frp,可以在 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。
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文件即可。

在这里的话,我就直接在两台linux上都下载了frp,方便互传

三:配置服务器端和客户端,及启动

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张图片
测试ssh连接,这里直接使用linux的ssh工具:
linux下frp实现内网穿透_第3张图片
浏览器打开web管理界面,http://192.168.80.133:7500/,可查看端口映射相关情况。
其他更多参数参考中文文档:https://gofrp.org/docs/

4:后台启动

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

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

客户端:

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

下面设置frp服务开机自启:

这里只演示客户端单向连接服务端,如需双向连接,请移步其他博客

客户端设置:

进入文件夹:

cd /etc/systemd/system

创建启动文件:

vim frp.service

编写启动文件,其中启动路径是自己的路径:

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecReload=/usr/local/frp/frps reload -c /usr/local/frp/frps.ini

[Install]
WantedBy=multi-user.target

保存退出之后,设置开机自启:

systemctl start frp.service
systemctl enable frp.service

你可能感兴趣的:(linux,运维,服务器)