使用frp进行内网穿透入门

本文介绍如何使用frp进行内网穿透,包括配置服务端和客户端,实现SSH访问及HTTP服务的公网暴露。通过具体案例展示了如何配置frp以实现不同服务的穿透。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用frp内网穿透

我们能用frp干什么?

  1. 在具有公网IP地址的服务器上,将NAT或防火墙后面的任何tcp或udp服务暴露给互联网。
  2. 通过具有公共IP地址(基于名称的虚拟主机支持)的服务器将NAT或防火墙后面的任何http和https服务暴露给互联网。

通过SSH访问LAN中的计算机

下载软件

坏境准备:一台有公网IP的服务器作为服务端,只有内网的机器作为客户端

解压软件

命令:tar -zxvf frp_0.12.0_linux_amd64.tar.gz
解压后目录如下: - frpc 客户端软件 - frpc_full.ini - frpc.ini 客户端配置文件 - frps 服务端软件 - frps_full.ini - frps.ini 服务端配置文件 - LICENSE
命令:cd frp*

修改服务器端配置

命令1:vi frps.ini
# frps.ini 
[common] 
bind_port = 7000

命令2(启动服务):./frps -c ./frps.ini

修改客户端配置

命令1:vi frpc.ini
[common]
server_addr = 112.*.*.*
server_port = 7000

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

命令2(启动服务):./frpc -c ./frpc.ini
说明: - server_addr 公网IP - server_port 服务器端口 - local_port 本地要替换的端口 - remote_port 替换端口(ssh连接时候改成这个端口)

OK,快用Xshell连接试试看吧!
ssh -oPort=6000 root@x.x.x.x

frp内网穿透实战

说一千,道一万,不如撸起袖子干一干
- 场景:有公网IP得阿里云服务器一台 A
- 只有内网联想服务器主机 B

B服务器 - frpc.ini
[common]
server_addr = 114.xx.xx.xxx
server_port = 7000

#通过tcp来连接SSH
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

#通过tcp来连接mysql
[mysql]
type = tcp
local_port = 3306
remote_port = 3306
#use_encryption = true
#use_compression = true

#[tomcat]
#type = http
#local_port = 8083
#custom_domains = tomcat.xxxx1.com
#remote_port =

#[web]
#type = http
#local_port = 8083
#subdomain = tomcat

#通过二级域名管理tomcat
[web01]
type=http
local_ip = 127.0.0.1
local_port = 8083
custom_domains = tomcat.xxxx1.com
localhost = /

#通过二级域名管理nexus
[web02]
type=http
local_ip = 127.0.0.1
local_port = 8084
custom_domains = nexus.xxxx1.com
localhost = /
A服务器 - frps.ini 服务端简单配置
[common]
bind_port = 7000
#privilege_allow_ports = 8082,8083
vhost_http_port = 80
vhost_https_port = 5051
#subdomain_host = xxxx1.com
#subdomain_host = xxxx2.com
#dashboard_port = 7500
#仪表板的用户名和密码都是可选的,如果没有设置,默认是admin。
#dashboard_user = admin
#dashboard_pwd = admin
  • 执行
setsid ./frps -c ./frps.ini
  • frpc.ini
    将请求域名作转发处理,因为vhost_http_port=80占用了80端口,导致生产环境上得网站不能直接通过域名来访问,如果vhost_http_port不等于80则导致访问通过子域名访问内网环境都需要在url后面加上81端口。
[common]
server_addr = 127.0.0.1
server_port = 7000

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

[web]
type = http
local_port = 81
custom_domains = www.xxxx.com
[linkai]
type = http
local_port = 82
custom_domains = www.xxxx1.om
[luming]
type = http
local_port = 83
custom_domains = www.xxxx.net
  • 执行
setsid ./frpc -c ./frpc.ini
  • 杀掉进程
命令1:ps -ef |grep frpc.ini(或frps.ini)
命令2kill -9  xxxx

实战总结
1. 如果要使用二级域名形式必须得设置了*解析,或者你要得二级域名解析
2. 服务端必须设置 vhost_http_port = 80 才能直接通过配置域名访问
3. 服务端配置vhost_http_port 不为80时候,访问路径需要加上这个替换端口
4. 如果设置了privilege_allow_ports,需要注意白名单范围,不在范围内得端口不能访问
5. setsid()调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离。由于会话过程对控制终端的独占性,进程同时与控制终端脱离。
6. subdomain_host 设置后,无法是使用custom_domains

能力有限,还请多多指教

<think>好的,用户想了解如何在Kali Linux中实现内网穿透,包括教程、使用方法及工具推荐。首先,我需要整理相关的工具和方法,确保覆盖主要的内容。 首先,用户提到的引用里有提到Ngrok、Sunny-Ngrok、frp等工具。这些是常用的内网穿透工具,应该详细说明每个工具的使用步骤。比如,Ngrok的免费版和配置方法,frp服务器和客户端配置。同时,用户可能关心免费和稳定的选项,需要强调哪些工具适合入门,哪些需要实名认证。 接下来,步骤需要分点说明。比如,安装必要的工具,配置Ngrok或frp,启动服务,验证连接。每个步骤需要具体的命令,方便用户复制操作。例如,下载Ngrok客户端,解压,运行命令,设置认证令牌等。 还要考虑用户可能的疑问,比如如何防御ARP攻击,但用户的问题集中在内网穿透,所以可能需要专注于穿透方法。不过,引用中提到的ARP欺骗攻击防御可以作为附加信息,但可能不属于当前问题范围。 另外,用户提供的引用中有提到不同的第三方平台,比如飞鸽已经不再免费,所以推荐Ngrok和frp更合适。需要确保推荐的工具是目前可用的,并且步骤是最新的。比如,引用3提到Ngrok的配置,引用4是frp的配置,需要详细说明。 还要注意使用中文回答,LaTeX格式的正确性,但用户的问题不涉及数学公式,可能不需要太多公式。但系统级指令要求行内数学表达式用$...$,这里可能用不上,但需要检查是否有需要的地方。 最后,生成相关问题,可能包括工具对比、常见问题、安全性等。例如,不同工具的优缺点,内网穿透的安全性,如何配置防火墙等。 总结步骤: 1. 介绍内网穿透概念及在Kali中的应用场景。 2. 推荐工具:Ngrok、Sunny-Ngrok、frp,说明各自特点。 3. 分步骤教程,每个工具的安装配置。 4. 验证穿透成功的方法。 5. 注意事项和常见问题。 6. 生成相关问题。 需要确保每个步骤清晰,命令准确,避免错误。比如,frp的下载链接是否正确,是否需要更新版本号。用户提供的引用4中的链接是v0.30.0,但最新版本可能更高,可能需要注明版本或建议用户查看最新版本。 另外,是否需要配置防火墙或路由器设置?比如,frp需要服务器端有公网IP,用户可能不知道这一点,需要提醒。或者Ngrok的免费服务器可能有限制,需要说明。 可能还需要提到其他工具,比如ssh反向隧道,但引用中没有提到,但如果有必要可以简要提及作为替代方案。 总之,需要综合用户提供的引用信息,整理出结构清晰、步骤明确的教程,推荐合适的工具,并解答潜在问题。</think>### Kali Linux 内网穿透教程及工具推荐 内网穿透是一种通过公网服务器将本地局域网服务暴露到外网的技术,常用于渗透测试、远程调试等场景。以下是基于Kali Linux的实现方法和工具推荐: --- #### **一、工具选择与特点** 1. **Ngrok** - 特点:免费、配置简单,适合初学者[^3]。 - 官网提供公开服务器,但需注册获取认证令牌。 2. **Sunny-Ngrok** - 特点:国内第三方平台,提供免费内网穿透服务,支持HTTP/TCP协议[^2]。 3. **frp (Fast Reverse Proxy)** - 特点:开源、灵活,需自备公网服务器,适合高阶用户[^4]。 --- #### **二、Ngrok使用教程** 1. **安装与配置** ```bash # 下载Ngrok客户端(需根据系统选择版本) wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip unzip ngrok-stable-linux-amd64.zip # 添加认证令牌(需官网注册获取) ./ngrok authtoken <YOUR_AUTH_TOKEN> ``` 2. **启动内网穿透** ```bash # 暴露本地80端口到公网(HTTP协议) ./ngrok http 80 # 暴露SSH服务(TCP协议) ./ngrok tcp 22 ``` - 运行后控制台会显示公网访问地址(如 `https://xxx.ngrok.io`)。 --- #### **三、Sunny-Ngrok使用步骤** 1. **注册账号并创建隧道** - 访问 [Sunny-Ngrok官网](https://www.ngrok.cc),注册后创建HTTP/TCP隧道,记录隧道ID。 2. **启动客户端** ```bash # 下载客户端并运行 wget https://cdn.sunny-ngrok.xyz/sunny_linux_amd64 chmod +x sunny_linux_amd64 ./sunny_linux_amd64 clientid <隧道ID> ``` --- #### **四、frp配置方法(需自备服务器)** 1. **服务端配置(公网服务器)** ```bash # 下载frp wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz tar -zxvf frp_0.30.0_linux_amd64.tar.gz # 编辑frps.ini [common] bind_port = 7000 # 客户端连接端口 ``` 2. **客户端配置(Kali Linux)** ```bash # 编辑frpc.ini [common] server_addr = <服务器IP> server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 # 公网访问端口 ``` 3. **启动服务** ```bash # 服务端 ./frps -c frps.ini # 客户端 ./frpc -c frpc.ini ``` - 通过 `ssh -p 6000 user@服务器IP` 即可访问内网主机[^4]。 --- #### **五、注意事项** 1. **免费服务的限制**:Ngrok和Sunny-Ngrok的免费版可能有带宽或连接数限制。 2. **安全性**:暴露服务时需配置防火墙,避免未授权访问。 3. **稳定性**:自建frp服务需确保服务器长期在线。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值