ssh+frp 实现内网穿透

本文详细介绍了FRP(Fast Reverse Proxy)的配置步骤,包括服务端和客户端的安装、配置,以及如何处理SSH连接问题。通过FRP,可以实现内网服务器的外网访问。此外,还提供了开机自启FRP的服务配置方法以及解决连接失败的技巧。
摘要由CSDN通过智能技术生成

一、frp简介

具体原理可参考这位的博客
一个可用于内网穿透的高性能反向代理应用,支持TCP、UDP、HTTP、HTTPS协议。

官方文档: https://gofrp.org/docs/

二、配置步骤

1、配置ssh连接准备

服务端:需要一台可以直接访问外网的服务器 阿里云或者腾讯云服务器

客户端:需要需要做内网穿透的服务器

2、配置ssh安装步骤

附上:(参考博客

下载frp压缩包

下载地址:https://github.com/fatedier/frp/releases
在这里插入图片描述

我的是ubuntu所以就算下载了frp_0.39.1_linux_amd64.tar.gz可以根据自己的电脑选择对应的版本

服务端和客户端解压安装包

这里可以自己在自己的文件夹中打开

cd /Software
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
tar -zxvf frp_0.39.1_linux_amd64.tar.gz
mv frp_0.39.1_linux_amd64 frp

在这里插入图片描述
在这里插入图片描述

  • frpc:客户端可执行程序
  • frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项)
  • frpc.ini:客户端配置项
  • frps:服务端可执行程序
  • frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项)
  • frps.ini:服务端配置项
  • LICENSE:许可证
服务端配置

查看frps.ini文件,修改为如下内容

[common]
bind_port = 7000 # 客户端跟服务端绑定的端口号

默认的配置信息中只有一个绑定端口为7000,意思是我们在外网服务器中绑定7000端口和客户端进行通信。
然后其实默认不用修改也行,保留作为服务端的信息也可:
在这里插入图片描述

启动frp服务端

./frps -c frps.ini

启动成功之后,关闭xshell或者是退出回话,都会使连接断开,可以使用nohup来进行后台启动(后面启动都可以使用这种方式)

如下是后台启动并将日志输入到file.log文件中

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

有要求可以配置文末的开机自动启动,这个不是一定要的但是为了方便使用可以跳转至博客最后面有设置开机启动的教程。

客户端配置

查看frpc.ini文件,修改为如下内容

[common]
server_addr = xx.xxx.xx.xx # 你的公网ip
server_port = 7000 # 绑定的端口,自定义,跟服务端一直即可

[ssh]
type = tcp
local_ip = 127.0.0.1 # 绑定的ip,填写127.0.0.1表示本机即可
local_port = 22
remote_port = 6000 # ssh默认是22,现在转发为6000端口
  • common:表示以下配置信息是一些公用配置信息
  • server_addr:是我们服务端即外网服务器的公网访问ip
  • server_port:是我们前面在服务端配置的frps.ini中bind_port中对应的端口。需保持两边一致
  • ssh:表示以下配置信息是我们使用ssh连接内网服务器时需要的一些配置信息
  • type: 是连接类型,ssh方式连接就用tcp
  • local_ip: 是本机ip,直接使用127.0.0.1即可
  • local_port: 是本地ssh端口,ssh默认端口为22
  • remote_port: 是外网服务器接收数据的端口

启动客户端

./frpc -c ./frpc.ini

可以通过xshell来连接,只需要指定端口号为remote_port即可,如下:
在这里插入图片描述

多个ssh配置(可选)

单个ssh配置成功,项配置多个,一样的操作,在另一台机器进行下载frp,之后只需要修改frpc.ini文件,修改格式如下

[common]
server_addr = xx.xxx.xx.xx # 公网ip
server_port = 7000

[ssh001] # 不能重复
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 不能重复

[ssh002]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 # 不能重复

需要将remote_port进行修改,[ssh]名称不能重复

frpc命令启动即可。

设置frp开机自启(非必要)

创建服务文件

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

配置开机启动信息

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

[Service] 
Restart=on-failure 
RestartSec=5 
ExecStart=/usr/local/frp/frpc_linux_arm 

[Install] 
WantedBy=multi-user.target

启动服务相关操作

#刷新服务列表: 
systemctl daemon-reload 
#设置开机自启 
systemctl enable frpc 
#关闭开机自启 
systemctl disable frpc 
#启动服务 
systemctl start frpc 
#停止服务 
systemctl stop frpc

3、遇到的问题

frpc客户端连接会提示 login to server failed: EOF
在这里插入图片描述
然后修改你的 frpc.ini
在这里插入图片描述

[common]
tls_enable = true
server_addr = xx.xxx.xxx.xxx
server_port = 7000

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

重新运行即可
2、设置开机启动问题
如果你的frp安装目录是自定义的,那么要修改一下部分,或者直接打开目录进行修改
在这里插入图片描述
修改这里的位置
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用frp实现内网穿透功能的方法如下: 1. 首先,你需要准备一台公网服务器作为frp的服务端,以及一台需要做转发的内网服务器作为frp的客户端。确保这两台服务器可以互相访问。 2. 在公网服务器上安装和配置frp服务端。你可以通过下载frp服务端的方式来安装。具体的步骤是,在公网服务器上下载frp服务端,并进行配置。 3. 下载frp服务端的方法可以根据你的操作系统来选择适合的版本。一般来说,你可以通过在公网服务器上执行命令来下载frp服务端,比如使用wget命令。 4. 下载完成后,你需要进行frp服务端的配置。配置文件通常是一个frps.ini文件,你可以根据自己的需求来修改配置文件中的参数,比如端口号、认证方式等等。 5. 在客户端的内网服务器上,你需要准备工作。比如,确保内网服务器上部署了需要暴露在公网上的资源,比如项目接口。 6. 通过scp命令将下载的frp服务端传送到公网服务器上,可以使用以下命令:scp -P ssh开放的端口 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@公网服务器ip:你要拷贝到的公网服务器的位置。 7. 在公网服务器上解压下载的frp服务端,并执行启动命令,启动frp服务端。 通过以上步骤,你就可以使用frp实现内网穿透功能了。这样,你就可以在外部网络访问到内网服务器上的资源,而无需在公网上部署一套相同的服务。同时,通过内网穿透,你可以在家中或其他地方访问公司内网的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Solkatt's

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值