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

推荐订阅源

WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
P
Proofpoint News Feed
A
About on SuperTechFans
P
Privacy International News Feed
月光博客
月光博客
雷峰网
雷峰网
S
Secure Thoughts
博客园 - 叶小钗
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
The Cloudflare Blog
SecWiki News
SecWiki News
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
罗磊的独立博客
A
Arctic Wolf
阮一峰的网络日志
阮一峰的网络日志
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
小众软件
小众软件
有赞技术团队
有赞技术团队
博客园 - 司徒正美
T
Tailwind CSS Blog
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity

侯锐的思考与分享

大数据技术的演进:从 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/