Ubuntu Server 20.04 系统安装(六):Linux搭建frp服务,实现内网穿透服务,实现外网到内网的在线访问

这篇具有很好参考价值的文章主要介绍了Ubuntu Server 20.04 系统安装(六):Linux搭建frp服务,实现内网穿透服务,实现外网到内网的在线访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一: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地址:GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.,可以在 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

ubuntu frp,Linux,linux,服务器,网络
找到自己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(此端口为ssh端口,WSL2有可能设置为2222或其他端口,这里需要注意)
local_port = 22
#远程服务器映射的端口为6000
remote_port = 6000

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

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

服务器运行启动:

./frps -c frps.ini

客户端运行启动:

./frpc -c frpc.ini

可以看到提示,都已经启动成功
ubuntu frp,Linux,linux,服务器,网络
ubuntu frp,Linux,linux,服务器,网络
测试ssh连接,这里用第三方工具xshell测试。
连接IP 为公网IP地址,端口为6000端口。
ubuntu frp,Linux,linux,服务器,网络
连接登录,即可登录到内网的192.168.152.103机器。

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

四:升级配置

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

1:服务器端配置

vim frps.ini

修改如下

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(此端口为ssh端口,WSL2有可能设置为2222或其他端口,这里需要注意)
local_port = 22
#远程服务器映射的端口为6000
remote_port = 6000

[web]
type = http
#本地http服务端口,默认80,按需配置
local_port = 80
# 绑定域名,注:配置http,必须需要域名,否则报错。如没有,可采用普通的tcp模式映射。
custom_domains = xxx

[zabbix]
type = tcp
local_ip = 127.0.0.1
#本机需要映射的端口22
local_port = 10050
#远程服务器映射的端口为6000
remote_port = 11050

3:启动测试

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

./frps -c frps.ini

客户端运行启动:

./frpc -c frpc.ini

浏览器打开web管理界面,http://123.32.12.32:7500/,输入账户密码,可查看端口映射相关情况。
ubuntu frp,Linux,linux,服务器,网络
同时访问:http://123.32.12.32:8088,即可访问跳转到到内网192.168.152.103机器的http服务。

其他更多参数参考中文文档:文档 | frp

4:后台启动

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

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

客户端:

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

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

后台运行

搭建好连接后,如果想要frp在后台运行可以执行:
服务端:

nohup ./frps -c frps.ini >/dev/null 2>&1 &

客户端:

nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &

想要终止进程的话,
先找到进程:

ps -aux|grep frp| grep -v grep

然后再杀掉进程即可:

kill -9 进程号

问题解决方案

问题一:记住要配置规则

如果是阿里云服务器(腾讯云服务器等其他服务器就不太清楚),需要手动配置入方向规则,开启端口。如下图所示。(我忘记是要开7000端口还是6000和7000端口都要开,反正全开了也没啥关系,哈哈哈哈哈)

ubuntu frp,Linux,linux,服务器,网络

问题二:[W] [service.go:101] login to server failed: i/o deadline reached

解决方法见Frpc login to server failed: i/o deadline reached的一种可能原因

在客户端frpc.ini中的common下添加

tls_enable = true

即可。

问题三:[ssh] connect to local service [127.0.0.1:22] error: dial tcp 127.0.0.1:22: connect: connection refused

解决方法:

  1. 在终端使用下方代码查看ssh状态和端口,如果状态关闭的话可见使用Linux,从正确配置ssh开始配置ssh。

    sudo service ssh status
    
  2. 查看ssh的端口与客户端frpc.ini中的ssh条目下的local_port是否一致,若不一致,则修改local_port为查询到的ssh端口即可。

Ubuntu 设置frp开机自启动

1、服务端配置frps.ini

[common]
bind_port = 7000
# tls_enable=true	# recommend add

/etc/systemd/system/目录下创建服务文件

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

填入以下信息,ExecStart自行替换为你自己的frp启动命令

[Unit]
Description=frpc
After=network.target
Wants=network.target

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/home/username/Software/frp/frps -c /home/username/Software/frp/frps.ini

[Install]
WantedBy=multi-user.target
# 刷新服务列表
systemctl daemon-reload
# 设置开机自启
systemctl enable frps.service
# 启动服务
systemctl start frps.service

2、客户端配置frpc.ini

[common]
server_addr = 39.107.**.105
server_port = 7000
tls_enable=true	# recommend add

[ssh-3080]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

/etc/systemd/system/目录下创建服务文件

cd /etc/systemd/system/
sudo vim frpc.service

填入以下信息,ExecStart自行替换为你自己的frp启动命令

[Unit]
Description=frpc
After=network.target
Wants=network.target
 
[Service]
Restart=on-failure
RestartSec=5
ExecStart=/data/module/frp_0.48.0_linux_amd64/frpc -c /data/module/frp_0.48.0_linux_amd64/frpc.ini
 
[Install]
WantedBy=multi-user.target
# 刷新服务列表
systemctl daemon-reload
# 设置开机自启
systemctl enable frpc.service
# 启动服务
systemctl start frpc.service

执行上述命令服务就可以设置开机自启并启动服务

  • 服务可能会在开机时启动失败。因此在设置开机自启命令时,最好在[Service]中定义RestartRestartSec
  • 下面是一些常用的systemctl命令
# 关闭开机自启
systemctl disable frpc.service
# 停止服务
systemctl stop frpc.service
# 重启服务
systemctl restart frpc.service
# 查看状态
systemctl status frpc.service
# 查看是否设置开机自启
systemctl is-enabled frpc.service

参考
Systemd 入门教程:实战篇
设置frp开机自启




Linux搭建frp服务,实现内网穿透服务,实现外网到内网的在线访问_linux frp_the丶only的博客-CSDN博客

【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器_whale998的博客-CSDN博客

【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器_whale998的博客-CSDN博客

 FirewallD is not running 原因与解决方法_嘿嘿,就是我的博客-CSDN博客

阿里云轻量应用服务器配置frp内网穿透通过Mac远控Win10主机配置指南_frp win10 配置_zorchp的博客-CSDN博客

Firewall常用命令

Ubuntu 设置frp开机自启动_qidu1998的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-799304.html

到了这里,关于Ubuntu Server 20.04 系统安装(六):Linux搭建frp服务,实现内网穿透服务,实现外网到内网的在线访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 20.04 安装VNC Server的教程。

    以下是在Ubuntu 20.04上安装VNC服务器(VNC Server)的教程: 更新系统: 安装Xfce桌面环境: 安装TightVNC服务器: 启动VNC服务器并设置访问密码: 在第一次运行vncserver时,会要求设置一个访问密码,并确认密码。 停止VNC服务器: 注意,\\\":1\\\" 是显示的标识符,如果您设置了不同的显

    2024年02月12日
    浏览(48)
  • Ubuntu 20.04 安装VNC Server的简单教程

    桌面版默认就已安装,服务器版需要手动安装,并启动 不要安装tigervncserver 要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no) 如果希望用某个用户比如 demo登录,就用su切换到这个用户。 如果想用root登录就直接使用root账号进行操作。  上面的命令会在~/.vnc

    2024年02月12日
    浏览(48)
  • ubuntu20.04 server 安装后磁盘空间只有一半的处理

    这里扩展:/dev/mapper/ubuntu–vg-ubuntu–lv

    2024年02月11日
    浏览(55)
  • 【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】

    Ubuntu安装步骤参考文章 知乎:Ubuntu 20.04系统安装及初始配置 先在Ubuntu官网下载系统镜像(或直接bing搜索对应版本)。【Ubuntu官网】 参考这篇文章 https://blog.csdn.net/qq_21386397/article/details/129894803 需要准备一个U盘(使用之前将U盘中内容做好备份,做成启动盘后U盘内文件将被清

    2024年02月09日
    浏览(72)
  • Ubuntu20.04安装sql server(内含多个可能遇到的问题以及解决方法)

    这学期的课程有数据库,因此今天(2022.3.6)在ubuntu上安装了sql server2019 即使根据官方指引进行安装也会遇到不少问题,因此为在这里总结了我自己遇到的所有问题,以及给出了相应的解决方案,希望能为后来的人解决一些困惑和麻烦 根据指引,在终端输入第一条语句:(导入

    2024年02月05日
    浏览(63)
  • ubuntu20.04一键安装VScode搭建ROS编程环境

    VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。

    2023年04月24日
    浏览(50)
  • Ubuntu20.04双系统安装流程

    (该文章以联想拯救者为例) 下载链接:https://cn.ubuntu.com/download 进入页面 这里有两个选项 一个Ubuntu虚拟机(左侧),另一个是适用于Windows子系统也就是双系统(右侧)。点击右侧的windows的链接,会出现以下页面。 点击最上面一栏中间位置的Download,出现以下页面。 选择

    2024年02月16日
    浏览(55)
  • Linux系列---【Ubuntu 20.04安装KVM】

    1.安装kvm 2. 将当前用户添加至libvirt 、 kvm组 3.验证安装 4.启动libvert 至此,kvm安装完毕! 1.安装xrdp 2.查看ubuntu的ip 3.打开windows远程连接工具 登录成功后,记得修改登录密码。不然,系统一锁屏,就打不开了。通过这里输入原来ubuntu的root密码,解不了休眠锁。 1.安装virt-manager

    2024年02月16日
    浏览(66)
  • 探索SQL Server 2022在Ubuntu 20.04上的安装、配置、备份与常见问题

    最近新项目要上线,考虑成本,放弃云数据库,选择自行安装,数据库选择SQL Server 2022,系统选择Ubuntu 20.04。 //SQL Server 2022文档地址 https: //learn.microsoft.com/zh-cn/sql/sql-server/?view=sql-server-ver16 SQL Server 2022先决条件:服务器内存至少需要2 GB 。 1、导入公共存储库 GPG 密钥

    2024年02月08日
    浏览(64)
  • 【安装教程】ubuntu20.04/22.04从零开始搭建autoware.universe

    目录 1. 基本配置情况 2. ROS2 Humble和git安装  2.1 ros2 humble安装(对应ubuntu22.04,仅源码安装需要) 2.2 git安装  3. 克隆autoware代码  4.自动安装依赖项(推荐) 5. 手动安装依赖项(在一键配置失效下使用,这里仅列出docker安装中需要的依赖)  5.1 cuda安装  5.2 docker engine安装 5.3 

    2024年01月18日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包