利用FRP实现内网穿透-(Linux/Windows)
frp是一个快速的反向代理,它允许您将位于NAT或防火墙后面的本地服务器暴露到互联网。它目前支持TCP和UDP,以及HTTP和HTTPS协议,使请求能够通过域名转发到内部服务。
目录
最近突然想起在工作中会遇到FRP代理,虽然wo知道FRP是用来实现内网穿透的,但是自己还没具体使用,因此这里参考几篇好文章,学习一下FRP实现内网穿透。
FRP介绍
frp是一个快速的反向代理,它允许您将位于NAT或防火墙后面的本地服务器暴露到互联网。它目前支持TCP和UDP,以及HTTP和HTTPS协议,使请求能够通过域名转发到内部服务。
环境准备
一台云服务器
一台内网主机
一个公网域名(但是我没有)
FRP官网下载:
我原本是在github官网下载的,但是官网的版本不适用我的VPS系统,因此我就找了一个旧版本的
v0.37.1 - fatedier/frp - MyGit
Windows通过frp实现Rdp连接内网远程桌面
服务端
首先我们在VPS上下载frp,下载完成后可以看到下列文件:
frpc:客户端使用的;frpc.ini:客户端的配置文件
frps:服务端使用的;frps.ini:服务端的配置文件
然后这里编辑服务端的配置文件frps.ini:
[common]
bind_port = 7000 # 服务端与客户端通信端口
dashboard_port = 7500 # 后台管理端口
dashboard_user = admin # 后台登录用户名
dashboard_pwd = admin # 后台登录密码
vhost_http_port = 7002 # http穿透端口
vhost_https_port = 7003 # https穿透端口
max_pool_count = 50
token = abc # 身份验证令牌,frpc要与frps一致
配置完成后我们需要对frps授权:
然后可以运行一下,在浏览器访问VPS地址:7500就可以看到后台登录面板,输入账号密码可以看到后台管理面板
客户端
下面配置客户端,还是一样先下载一个frp,windows版本的
下载完成后会有一下几个文件,内容和服务端是一样的,不过这里要使用的是frpc,而不是frps
打开frpc.ini编辑以下内容到里面:
[common]
server_addr = vps地址
server_port = 7000 #服务器的端口
token =abc #token值,与服务端一致
tcp_mux = true
[rdp]
type = tcp
local_ip = 0.0.0.0
local_port = 3389 #本地端口
remote_port = 7089 #远程连接的端口
这里还可以写一个bat文件来运行:
内容:
@echo off
:home
frpc.exe -c frpc.ini
goto home
然后我们运行服务端和客户端bat脚本:
尝试连接:
可以看到,成功的通过DRP访问到了我的VPS 45.196.222.235的7089端口,也就是我本地的3389的远程桌面,成功的实现了内网穿透,访问到了内网主机的RDP服务
Linux通过frp实现ssh远程登录内网主机
我们在VPS上下载frp,下载完成后可以看到下列文件:
subdomain_host = test.xyz # 注册的域名
frpc:客户端使用的;frpc.ini:客户端的配置文件
frps:服务端使用的;frps.ini:服务端的配置文件
服务端
配置如下:
[common]
bind_port = 7000 # 服务端与客户端通信端口
dashboard_port = 7500 # 后台管理端口
dashboard_user = admin # 后台登录用户名
dashboard_pwd = admin # 后台登录密码
vhost_http_port = 7002 # http穿透端口
vhost_https_port = 7003 # https穿透端口
max_pool_count = 50
token = abc # 身份验证令牌,frpc要与frps一致
客户端
配置如下:
[common]
server_addr = 45.196.222.235 #VPS地址
server_port = 7000
token = abc
tcp_mux = true
[ssh]
type = tcp
local_ip = 192.168.159.200 #内网主机地址
local_port = 22 #本地端口
remote_port = 7001 #远程端口
服务端和客户端均运行:
尝试连接:
可以看到,成功的通过访问45.196.222.235:7001,ssh远程连接到了内网主机192,168.159.200,成功实现了内网穿透。
windows/Linux通过frp实现访问内网web服务
frp是可以实现内网穿透访问内网的web服务的,但是需要有公网的域名,我这里没有,没办法演示,这里引用其他文章中的的配置文件,如果有公网域名可以试一下,等我后面注册了域名再复现吧。
服务端:
subdomain_host = test.xyz # 注册的域名
客户端:
[web01] # 添加web节点
type = http
local_ip = 192.168.xxx.xxx
local_port = 8080 # 本地8080端口可以通公网服务器7002端口访问,这里我的8080跑着tomcat
subdomain = web01 # 自定义子域名
结束,纳斯,又学到一个知识点。(^▽^)
参考文章:
内网穿透frp安装使用详细教程-软路由,x86系统,openwrt(x86),Router OS 等-恩山无线论坛 (right.com.cn)
更多推荐
所有评论(0)