内网穿透是解决局域网设备不能被外网访问的一个常见需求。利用 frp(Fast Reverse Proxy)工具,我们可以很方便地实现这一功能。本文将介绍如何配置 frp 的 0.56.0 版本,以实现 Web、Samba 和 SSH 远程连接,并提供相应的配置文件示例。
一、frp 简介
frp 是一个高性能的反向代理应用,帮助用户将内网服务暴露到公网上。它的工作原理是通过一个公网服务器(称为 frps)来中转内网服务器的流量(称为 frpc)。
二、环境准备
首先,确保你已经在公网服务器和需要被访问的内网机器上安装了 frp 0.56.0 的最新版本,并且能够正常运行。
三、配置文件示例
在开始配置之前,我们首先明确需要实现的服务:
- Web 服务器:通过 HTTP 方式(例如 Nginx 或 Apache)。
- Samba 共享:用于文件共享。
- SSH 服务:远程登录。
下面我们来逐步配置这些服务。
1. frps(公网服务器)配置
在公网服务器上创建一个配置文件 frps.ini
,内容如下:
[common]
bind_port = 7000
vhost_http_port = 80 # HTTP 端口
vhost_https_port = 443 # HTTPS 端口
# SSH 端口设置
[ssh]
type = tcp
remote_port = 6000
# Samba 端口设置
[samba]
type = tcp
remote_port = 3000
2. frpc(内网机器)配置
在内网机器上创建一个配置文件 frpc.ini
,内容如下:
[common]
server = YOUR_PUBLIC_SERVER_IP # 替换成你的公网服务器IP
server_port = 7000
# Web 服务配置
[web]
type = http
local_ip = 127.0.0.1 # 你的 Web 服务器 IP
local_port = 80 # Web 服务器端口
custom_domains = yourdomain.com # 替换成你的域名
# SSH 服务配置
[ssh]
type = tcp
local_ip = 127.0.0.1 # 你的 SSH 服务 IP
local_port = 22 # SSH 服务端口
remote_port = 6000 # 对应公网服务器的设置
# Samba 服务配置
[samba]
type = tcp
local_ip = 127.0.0.1 # 你的 Samba 服务 IP
local_port = 445 # Samba 服务端口
remote_port = 3000 # 对应公网服务器的设置
四、启动 frp
配置完成后,我们需要启动 frps 和 frpc。
- 在公网服务器上启动 frps:
./frps -c ./frps.ini
- 在内网机器上启动 frpc:
./frpc -c ./frpc.ini
五、测试连接
1. 测试 Web 访问
在浏览器中输入 http://yourdomain.com
,应该可以访问到内网的 Web 服务。
2. 测试 SSH 连接
在终端中输入以下命令进行 SSH 连接:
ssh username@YOUR_PUBLIC_SERVER_IP -p 6000
3. 测试 Samba 连接
在文件浏览器中输入 smb://YOUR_PUBLIC_SERVER_IP:3000
,如果一切正常,你将能访问内网的 Samba 共享。
六、总结
通过以上的配置,我们成功地实现了通过 frp 工具将内网服务暴露到公网。这种方式不仅简单,而且可以同时支持多种服务,非常适合开发者和运维人员进行测试和使用。希望本文能对你理解和使用 frp 有所帮助!