Frp内网穿透 ssh

1、简介

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

为什么使用 frp?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

官方github页面:https://github.com/fatedier/frp

2、安装

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

系统需求

由于采用 Golang 编写,所以系统需求和最新的 Golang 对系统和平台的要求一致,具体可以参考 Golang System requirements

下载

目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

部署

解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。

安装步骤:

流程说明:

1、下载压缩包、解压,放到自己喜欢的目录,客户端、服务端都需要下载、解压
2、服务端修改 frps.ini 配置文件、绑定端口,记得防火墙的设置,配置成service后台运行,也可以开机自启动
3、客户端修改frpc.ini配置文件、绑定端口,配置成service后台运行,也可以开机自启动

浏览器访问github release页面:https://github.com/fatedier/frp/releases

根据机器下载对应压缩包,这里是 amd64:https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz

下载、解压:

放到自己喜欢的目录,这里是,注意root权限问题

#新建目录,主要就是下载文件、解压过程,可以跳过
sudo mkdir /usr/local/program/frp
#进入目录
cd /usr/local/program/frp
#下载文件
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
#解压
sudo tar -zxvf frp_0.37.0_linux_amd64.tar.gz

cd frp_0.37.0_linux_amd64 

sudo cp * ../
cd ..
ls -al
#可以删除不需要的文件和目录

解压完的文件
在这里插入图片描述

frpc是客户端的执行程序,frpc.ini 是客户端的配置文件
frps是服务端的执行程序,frps.ini是服务端的配置文件

systemd 是目录,里面是systemd 问文件,将frp配置成系统service的配置

上述步骤需要在客户端和服务端都一起执行一下,在服务端与客户端启用不同的进程

服务端

首先配置服务端

sudo vim frps.ini


[common]
bind_port = 7000

bind_port 是绑定的服务端的端口,用来客户端的服务端进行通信的,云主机记得配置防火墙端口,这里还添加了iptables 的配置

sudo vim /etc/sysconfig/iptables


#添加下面两行
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6000 -j ACCEPT


#重启iptables
systemctl restart iptables

配置service

#刚刚的systemd目录

#修改 frps.service 文件 主要是配置程序路径和配置文件未知

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

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
#修改这一行,前面是程序路径,后面是配置文件路径
ExecStart=/usr/local/program/frp/frps -c /usr/local/program/frp/frps.ini  

[Install]
WantedBy=multi-user.target

拷贝刚刚的frps.service 到

sudo cp frps.service /usr/lib/systemd/system/

路径下
启动

systemctl start frps.service


#也可以设置开机启动
systemctl enable frps.service

客户端

配置客户端

sudo vim frpc.ini


[common]
server_addr = *.*.*.*  # 远程服务器的地址
server_port = 7000  #服务器绑定的端口

[ssh]
type = tcp
local_ip = 127.0.0.1  #本地的ssh服务器的地址,本机就是本机地址
local_port = 22   #客户端的ssh端口
remote_port = 6000  #在远程机器上暴露的端口,ssh 连接的端口

配置service
同样的操作

测试机器启用ssh连接

ssh -oPort=6000 test@*.*.*.*
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值