1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用云服务器和Frp(快速反向代理)框架快速部署实现内网穿透

使用云服务器和Frp(快速反向代理)框架快速部署实现内网穿透

时间:2021-09-28 16:46:52

相关推荐

使用云服务器和Frp(快速反向代理)框架快速部署实现内网穿透

目录

一. 背景1.1 内网穿透1.2 Frp介绍1.3 Frp配置流程 二. 云服务器配置2.1 配置安全组2.2 编写frps.ini 三. 内网主机配置3.1 编辑frpc.ini文件3.2 启动服务并配置开机自启动 四. 参考文献

一. 背景

现在有一台ubuntu云服务器,我想通过内网穿透将一台内网的主机当成云服务器来使用(包括但不限于ssh、http和https服务),比如我想在外地通过ssh远程连接到一台内网没有桌面的主机(可以是Ubuntu或者Windows,Windows配置类似),就可以使用frp内网穿透, 配置起来非常方便快捷。

1.1 内网穿透

内网穿透是指,通过一些代理工具,允许你在内网主机上运行代理工具客户端,通过连接到公网上运行的代理服务器,将内网主机的服务暴露到公网上,实现内网穿透,让外部用户可以访问内网的服务。

常见的内网穿透工具:

1.Ngrok:Ngrok是一个简单易用的内网穿透工具,它可以将本地服务暴露到公网上,并提供一个临时的公网地址供外部访问。Ngrok支持多种协议和自定义子域名,但其免费版功能有限,需要购买许可证来解锁更多功能。

2.Frp(Fast Reverse Proxy):Frp是一个快速的反向代理工具,用于将局域网中的内部服务暴露给公网,实现内网穿透的功能。Frp是开源的,支持TCP、UDP、HTTP和HTTPS等协议,配置简单,支持身份验证和加密功能。

3.SSH反向隧道:SSH反向隧道是通过SSH协议建立一个安全的连接,将本地端口转发到公网服务器,实现内网穿透。SSH反向隧道是一种简单、安全的方法,但对SSH服务有一定的依赖。

4.ZeroTier:ZeroTier是一种虚拟局域网(SD-WAN)技术,它可以将多个设备虚拟连接成一个局域网,实现内网穿透。ZeroTier支持多平台,包括Windows、Linux、macOS、iOS和Android等。

1.2 Frp介绍

Frp(Fast Reverse Proxy)是一个快速的反向代理工具,它是一款基于Golang语言开发的开源项目,用于将局域网中的内部服务暴露给公网,实现内网穿透的功能。

主要特点和用途:

1.内网穿透:Frp允许你在内网主机上运行frpc客户端,通过连接到公网上运行的frps服务器,将内网主机的服务暴露到公网上,实现内网穿透,让外部用户可以访问内网的服务。

2.简单易用:配置简单,可以通过编辑ini配置文件来指定要暴露的内网服务和端口号等信息。

3.多种协议支持:Frp支持多种协议,如TCPUDPHTTPHTTPS等,适用于各种类型的服务。

4.安全性:Frp提供了身份验证和加密功能,可以保障数据传输的安全性。

Frp由两个组件组成:

(1)frps(Frp Server):运行在公网服务器上,用于接受来自frpc客户端的连接请求,并将请求转发到内网主机上的指定服务。

(2)frpc(Frp Client):运行在内网主机上,用于与frps服务器建立连接,并将本地服务的请求转发到frps服务器上。

1.3 Frp配置流程

1.在公网服务器上配置frps,编辑frps.ini文件指定公网服务器的IP地址和端口号,以及认证令牌等。

2.在内网主机上配置frpc,编辑frpc.ini文件指定frps服务器的IP地址和端口号,以及要暴露的内网服务的端口号等。

3.运行frps服务器和frpc客户端。

二. 云服务器配置

2.1 配置安全组

打开云服务器的7000、80和443端口:

2.2 编写frps.ini

下载frp: /fatedier/frp/releases

tar -zxvf frp_0.37.1_linux_amd64.tar.gz

cd frp_0.37.1_linux_amd64/frps

[common]# frps服务监听的IP地址和端口bind_addr = 0.0.0.0bind_port = 7000# frps服务的令牌,用于客户端登录认证token = 12345678# 以下是示例的端口映射配置,可以根据实际需求进行添加或修改[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000[http]type = httplocal_ip = 127.0.0.1local_port = 80custom_domains = [https]type = httpslocal_ip = 127.0.0.1local_port = 443custom_domains = # 更多端口映射配置可以继续添加

三. 内网主机配置

下载frp: /fatedier/frp/releases

tar -zxvf frp_0.37.1_linux_amd64.tar.gz

cd frp_0.37.1_linux_amd64/frps

3.1 编辑frpc.ini文件

[common]# server_addr为FRPS服务器IP地址server_addr = 124.xx.xxx.29# server_port为服务端监听端口,bind_portserver_port = 7000# 身份验证token = 12345678[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000# [ssh] 为服务名称,下方此处设置为,访问frp服务端的7000端口时,等同于通过中转服务器访问127.0.0.1的6000端口。# type 为连接的类型,此处为tcp# local_ip 为中转客户端实际访问的IP# local_port 为目标端口# remote_port 为远程端口

3.2 启动服务并配置开机自启动

如果仅仅想短暂启动frp服务:

./frpc -c frpc.ini

如果想要让内网主机每次开机都启动穿透服务:

sudo vim /etc/systemd/system/frpc.service

编辑内容如下:

[Unit]Description=frp client serviceAfter=network.target[Service]Type=simpleExecStart=xxxx/frp_0.37.1_linux_amd64/frpc -c xxxx/frp_0.37.1_linux_amd64/frpc.iniRestart=alwaysRestartSec=30[Install]WantedBy=multi-user.target

执行以下命令启用frpc服务:

sudo systemctl enable frpc.service

执行以下命令启动frpc服务:

sudo systemctl start frpc.service

重启电脑,等待30s后可使用以下命令检查frpc服务的状态:

sudo systemctl status frpc.service

四. 参考文献

b站司波图博主的教程地址:/spoto/natserver

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。