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

简介: 使用frp端口映射实现内网穿透(SSH、HTTP服务)一、下载

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

一、下载

通过内网穿透的原理和实现方式的学习我们已经明白了内网穿透的原理,想要实现内网穿透就需要让内网实现与具有公网IP的设备进行绑定。


我们这里使用frp(一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网)进行内网穿透。下载地址:https://github.com/fatedier/frp/releases


我们需要在内网设备和公网设备上都进行frp的下载。


fprc:客户端程序;(内网程序)

frpc.ini:客户端程序配置文件;

frps:服务网器端程序;(公网程序,进行端口映射服务)

frps.ini:服务器端程序配置文件;

二、基础配置配置

1)对于公网设备,我们需要配置frps.ini文件

[common]
bind_port = 7000
token = 129496
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = root
dashboard_pwd = xxxx
  1. bind_port:用户客户端与服务端连接的端口(让外网设备可以将请求信息转发给内网让内网主动与发起请求设备进行连接)
  2. token:认证密码
  3. dashboard:仪表盘
  • addr:服务器本机
  • port:仪表盘网页绑定在服务器的端口
  • user:访问仪表盘网页的用户名
  • pwd:密码

2)对于内网设备,我们需要配置frpc.ini文件

[common]
server_addr = ip
server_port = 7000
authentication_method = token 
token = xxxxx

server_addr:服务器(公网设备)IP

server_port:服务器端口(有了IP和端口后内网即可进行NAT穿透,让公网设备可以将请求转发给自己),需与服务器bind_port的设置保持一致

authentication_method:采用token的认证方式

token:认证密码,需与服务器的设置保持一致3)服务器端开放7000端口和7500端口

三、实现SSH服务

1)在原本客户端的frpc.ini配置基础上增加

# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1 
local_port = 22 # ssh服务端口
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用

注释记得去除


[ssh]:[服务名]

type:表示想要实现的服务对应的协议

local_ip:表示本地需要暴露到公网的服务地址,即内网对应的地址

local_port:表示本地需要暴露到公网的端口,即内网监听的端口,由于是ssh服务故监听22端口

remote_port:表示在 frp 服务端监听的端口,访问外网设备此端口的流量将会被转发到内网设备的对应端口(local_port)

服务器端开放6000端口

3)运行程序

  • 服务器端:./frps -c ./frps.ini
  • 客户端:./frpc -c ./frpc.ini

4)使用ssh连接工具,通过外网ip加6000端口号即可以与内网建立ssh连接

四、实现HTTP、HTTPS服务

1)在原本客户端的frpc.ini配置基础上增加

[http]
type = http
local_ip = 127.0.0.1
local_port = 8800
custom_domains = xxx

此处与SSH服务配置相似,只是将type更改为http并多设置一个custom_domains


custom_domains = 这里填写你已经解析到frps服务端IP上的域名,自己每个穿透对应服务,都可以绑定一个专属域名用于访问,包括使用tcp和udp协议,然后就可以通过这个已经自定义域域名访问到自己的对应HTTP服务


如果没有域名则先写外网ip即可


注意这里没有设置remote_port,http服务和http服务的访问端口在服务器端设置2)在原本服务端的frps.ini配置基础上增加

vhost_http_port = 7600
vhost_https_port = 7601

vhost_http_port = 7600 和 vhost_https_port = 7601 表示将服务器的7600端口做为http服务的访问入口,7601端口做为https服务的访问入口


3)服务器端开放7600端口、如果配置了https服务则开放7601端口


4)运行程序


5)通过域名/ip+端口访问内网的http/https服务

五、frp服务自启动

  1. 进入frp目录,复制文件
  • cp frps /usr/local/bin/frps
  • mkdir /etc/frp
  • cp frps.ini /etc/frp/frps.ini
  1. 创建frps.service服务:vim /lib/systemd/system/frps.service
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=always
RestartSec=1min
ExecStop=/usr/bin/killall frps
[Install]
WantedBy=multi-user.target
  1. 设置开机自启动:systemctl enable frps
  2. 开启服务:systemctl start frps
  3. 查看状态:systemctl status frps

107f1e49b9b814201333a0ff741c47a6.png

相关文章
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
289 0
|
8月前
|
网络协议 安全 网络安全
什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
数据的传输离不开各种协议,它们就像现实世界中的交通规则,规定了数据如何打包、寻址、传输和接收。对于使用内网穿透的用户来说,理解TCP、UDP和HTTP这些基础协议的特点,能帮助你更好地理解其性能表现,并选择最适合的配置方案。
|
8月前
|
Unix Linux Shell
指定端口-SSH连接的目标(告别 22 端口暴力破解)
本文介绍了 SSH 命令 `ssh -p 44907 root@IP` 的含义与使用方法,包括命令结构拆解、完整示例及执行过程详解,帮助用户安全地远程登录服务器。
1379 0
|
11月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
546 14
|
11月前
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
安全 网络协议 网络安全
【Azure APIM】APIM服务配置网络之后出现3443端口不通,Management Endpoint不健康状态
如果没有关联的网络安全组,则阻止所有网络流量通过子网和网络接口。
436 30
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1070 7
|
安全 数据安全/隐私保护
frp http转发
通过FRP实现HTTP转发,可以方便地将内网服务暴露到外网,解决了内网穿透问题。在实际应用中,通过合理配置FRP和增强安全措施,可以实现稳定、高效和安全的内网服务外网访问。
1500 12
|
运维 网络安全
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
通过这些步骤和方法,您可以有效解决“ssh: connect to host IP port 22: Connection timed out”问题,并顺利使用 `scp`命令传输文件。
15739 7