利用frp简单实现内网穿透——以ssh为例

简介: *受篇幅该文章是基于服务端-Linux 客户端-window 所作*

highlight: a11y-dark

简介

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

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

软件官网

GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

文档地址

工具

frp ---- linux + windows 版本均为0.45.0

具有公网ip的服务器【下称服务端】 ---- 操作系统Linux

内网计算机【下称客户端】 ---- 操作系统windows

流程

下载

GitHub下载frp

linux可以通过wget命令下载【受国际线路影响可能会报错】

image.png

安装

frpc:客户端

frps:服务端

服务端

使用tar -xvf xx.tar.gz命令解压

仅保留文件名为frps的相关文件即可,如图所示:

image.png

客户端

使用解压工具进行解压

仅保留文件名为frpc相关文件即可,如图所示:
image.png

配置

服务端、客户端均需启用ssh服务,windows需要开启openssh服务器、openssh客户端,并启动相应服务

安装 OpenSSH | Microsoft Learn

服务端

打开frps.ini文件,配置服务端相关信息,并在服务器的防火墙中开启相应端口发放权限【以此文为例,分别需要开启7000端口与6000端口】

[common]
# frps监听端口[必填]
bind_port = 7000

客户端

打开frpc.ini文件,配置客户端相关信息

[common]
#服务端公网ip
server_addr = 123.249.70.228 
#服务端端口
server_port = 7000

[ssh]
type = tcp
#转发的ip&端口
local_ip = 127.0.0.1
local_port = 22
#客户端暴露端口
remote_port = 6000

运行frp

linux服务端: ./frps -c ./frps.ini

windows客户端: 在cmd中运行frpc.exe

验证是否实现内网穿透

使用非同一局域网电脑输入命令ssh UsernameClient@ip -p port,回车后正确填写密码

若登陆成功,即证明配置无误

其中,UsernameClient为客户端的用户名,ip为公网服务器ip,端口为frpc.ini文件中remote_port的值,密码是客户端密码

注意:如果客户端使用windows且是微软账户登录,则用户名为微软账号的邮箱,密码为微软登录密码

原理解析

frp实现内网穿透原理类似于代理服务器

首先用户通过公网ip访问服务器,服务器通过端口映射到内网计算机,实现内网穿透

目录
相关文章
|
9月前
|
网络协议 物联网 Linux
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
431 0
|
9月前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
202 2
|
9月前
|
存储 网络协议 Linux
如何使用内网穿透工具实现远程SSH访问Deepin系统
如何使用内网穿透工具实现远程SSH访问Deepin系统
133 0
|
9月前
|
网络协议 关系型数据库 Linux
无需公网IP,在家SSH远程连接公司内网服务器「cpolar内网穿透」
本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路由器。
590 0
|
9月前
|
网络协议 安全 网络安全
Android Termux安装SSH结合内网穿透实现远程SFTP文件传输
Android Termux安装SSH结合内网穿透实现远程SFTP文件传输
220 0
|
9月前
|
运维 监控 网络安全
小米路由器R2D开启SSH+Frp内网穿透,让爸妈在老家轻松追剧
小米路由器R2D开启SSH+Frp内网穿透,让爸妈在老家轻松追剧
666 0
|
网络协议 Shell 网络安全
在外SSH远程连接macOS服务器【cpolar内网穿透】
macOS系统自带有Secure Shell 客户端,它可让您登录到侦听传入SSH连接的远程服务器和台式机。我们可以用ssh username@ip来ssh到服务器,但通常局限于局域网内的远程。
205 0
|
3月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
6月前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
6月前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?