网络知识

Mac mini 通过阿里云实现内网穿透 远程桌面

前言:FRP内网穿透原理


在数字时代,无缝的网络连接是技术人员的常见需求。FRP(Fast Reverse Proxy),一款由Go语言编写的高性能反向代理工具,提供了强大的内网穿透能力。本文将深入探讨FRP的安装、配置,以及工作原理,帮助你将本地服务无缝暴露至全球互联网。

FRP通过在有公网IP的服务器(服务端)和需要暴露服务的内网机器(客户端)之间建立隧道,允许外部请求安全访问内网中的服务。下图详细展示了FRP内网穿透的工作原理,包括客户端(frpc)、服务端(frps)、内部服务、外部请求以及它们之间建立的隧道。

1.下载frp软件


https://github.com/fatedier/frp/releases

阿里云的ECS系统是Centos,这里下载 frp_0.61.0_linux_amd64.tar.gz 版本。

Mac mini是Apple芯片,这里面下载 frp_0.61.0_darwin_arm64.tar.gz 版本。

2.配置frp服务端(阿里云ECS Centos)


解压缩 frp_0.61.0_linux_amd64.tar.gz, 修改 frps.toml

# 服务端口
bindPort = 7000
auth.method = "token" # 鉴权方式
auth.token = "xxxxx"  # 客户端连接的token

# Dashboard 配置
webServer.port = 7001				# 后台面板端口号
webServer.addr = "0.0.0.0"			# 后台管理地址
webServer.user = "xxxxx"			# 后台管理员账号
webServer.password = "xxxxx"			# 后台管理员密码

在终端上输入下面命令,就可以启动服务了。

./frps -c frps.toml 即可启动服务

后台管理面板页面
访问地址:http://[serverAddr]:7001

添加修改ECS服务器的安全组规则

添加7000,7001,35900,7860, 35901 端口的入方向规则

3.Mac mini客户端的配置


解压缩 frp_0.61.0_darwin_arm64.tar.gz, 修改 frpc.toml

serverAddr = "123.xxx.xxx.xxx"  # 阿里云ECS服务器IP
serverPort = 7000 # frp端口
auth.method = "token"
auth.token = "xxxxx"  # token 与服务端保持一直
vhostHTTPPort = 7860 # 穿透服务器7860端口

[[proxies]]
name = "vnc"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5900  # vnc默认端口5900
remotePort = 35900 # 和阿里云ECS服务器的映射端口,访问阿里云ECS服务器的35900端口时,会被转发到客户端的5900端口
#transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "stable-diffusion-web"
type = "http"
localIP = "127.0.0.1"
localPort = 7860
#transport.useEncryption = true
transport.useCompression = true
customDomains = ["123.56.xxx.xxx"] # 和阿里云ECS服务器的映射端口,http访问阿里云ECS服务器的7860端口时,会被转发到客户端的7860端口

# 配置ssh服务
[[proxies]]
name = "ssh"
type = "tcp"
localIp = "127.0.0.1"
localPort = 22
remotePort = 35901 # 这个自定义,之后再ssh连接的时候要用

在Mac mini的设置里面打开 屏幕共享(远程桌面)

在Mac mini的设置里面打开 远程登录(SSH)

在Mac mini的终端执行,启动客户端。

./frpc -c ./frpc.toml

启动成功以后,在服务端的管理页面,可以看到有vnc, ssh,http的连接了

4.远程连接Mac mini


远程桌面

在另外Mac电脑上,访达–>前往–>连接服务器

vnc://frp服务器ip:35900

HTTP

浏览器访问 http://123.xxx.xxx.xxx:7860/ 时,会被转发给 客户端的7860端口

SSH

在终端上输入,就能以ssh登录了。

ssh -p 35901 用户名@123.xxxx.xxx.xxxx