惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
B
Blog
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
F
Full Disclosure
Microsoft Azure Blog
Microsoft Azure Blog
Recorded Future
Recorded Future
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
S
Securelist
S
Schneier on Security
P
Privacy International News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
H
Heimdal Security Blog
博客园 - Franky
P
Palo Alto Networks Blog
PCI Perspectives
PCI Perspectives
T
Tailwind CSS Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Latest news
Latest news
P
Proofpoint News Feed
量子位
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog

侯锐的思考与分享

大数据技术的演进:从 Hive、GFS 到 Raft 如何进行站点网络优化 使用Elasticsearch分析腾讯云EO日志 XXL-JOB的部署、搭建与使用 使用NGINX的auth_request进行统一jwt鉴权 使用APISIX解析jwt并获取payload信息 《推荐系统实践》 《上瘾:让用户养成使用习惯的四大产品逻辑》 Kotlin与Java对照手册 ComfyUI的操作与使用 ComfyUI简介 利用whisper为视频自动生成字幕 ffmpeg笔记 如何参与Apache顶级开源项目 安装并使用zsh APISIX的使用 自己动手实现一个可以运行在JVM上的编程语言 使用ANTLR4格式化JSON ANTLR4从入门到实践 ShardingSphere-JDBC介绍 Maven详细介绍
使用frp实现内网ssh穿透
Raymond · 2024-01-06 · via 侯锐的思考与分享

最近需要远程访问一台虚拟机内的Linux,因为虚拟机没有公网IP,因此选择使用frp转发ssh流量的方式来实现远程访问。首先访问frp的release页面并根据操作系统和CPU下载相应的版本,之后解压得到frpcfrps文件。

frps是服务端版本,它需要部署在一台拥有公网IP的主机上,它的配置frps.ini如下

[common]
bind_port = 10625
token = y9XBLEu2ymW1s5N3W7OuDPhUG4IohVmQ

其中bind_port代表了它所监听的端口号,而token则是客户端连接时需要用到的验证信息。

frpc是客户端版本,它的配置frpc.ini如下

[common]
server_addr = 100.26.21.285
server_port = 10625
authentication_method = token 
token = y9XBLEu2ymW1s5N3W7OuDPhUG4IohVmQ

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

common代表通用配置,它包含了4个配置

  1. 作为服务端的远程主机的公网IP
  2. frps在远程主机所监听的端口号
  3. 验证方式,这里是通过token进行验证
  4. 验证的token值

ssh代表了进行ssh转发的设置,它的含义如下

  1. 转发的方式,这里是tcp协议
  2. 本地主机的地址,因为访问的就是当前机器,设为127.0.0.1
  3. 本地ssh服务所监听的端口,默认端口22
  4. 远程(服务端)进行ssh流量转发时所监听的端口

有了如上的配置之后,我们可以在远程主机上使用该配置启动frps

./frps -c ./frps.ini

需要注意远程主机的10625和10626端口需要关闭防火墙的设置,以保证可以通过外部进行访问。之后启用本地的客户端

./frpc -c ./frpc.ini

本地机器如果没有安装ssh服务,则需要先安装ssh服务。启动了服务端和客户端之后,可以在服务端看到客户端成功连接的日志信息,之后通过

ssh ray@100.26.21.285 -p 10626

命令就可以成功访问虚拟机内Linux的ssh服务了,整个网络流程大致如下

  1. 客户端提前通过服务端的10625端口已经创建好了客户端与服务端的连接
  2. 用户访问远程主机frps的10626端口
  3. 远程主机上的frps通过与客户端的连接将流量发给frpc
  4. frpc将流量转发给本地的ssh服务
  5. 用户最终可以操作本地的ssh

参考

使用frp端口映射实现内网穿透(SSH、HTTP服务)

本文链接: https://www.nosuchfield.com/2024/01/05/Implementing-ssh-network-penetration-with-frp/