FRP内网穿透(远程ssh终端+rdp桌面配置)

本文介绍了如何使用FRP进行内网穿透,结合NoMachine实现远程桌面访问。配置包括内网主机(Ubuntu 20.04 LTS)、外网设备(Windows笔记本)和云服务器(Ubuntu 20.04 Server)。详细步骤涉及FRP服务端和客户端的设置,SSH及远程桌面的端口映射,并提供了错误处理建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-------------20220416更新-------------
更高效便捷的远程桌面访问方案:FRP + NoMachine远程桌面开发指南


硬件配置

  • 内网主机:ubuntu20.04 LTS 桌面版
  • 外网设备:windows笔记本
  • 云服务器:ubuntu20.04 server

FRP内网穿透(远程ssh终端+rdp桌面配置)

使用FRP实现内网穿透的流程很简单,就是位于内网的主机将远程ssh终端和远程rdp桌面的端口映射到云服务器的端口,在外网设备上使用云服务器的公网IP+映射的端口即可访问内网的台式主机,如下图:

ssh
rdp
ssh
rdp
外网设备
云服务器: frp服务端
内网主机: frp客户端

云服务器配置(frp server)

云服务器带宽要尽量大一些,可以使用腾讯云的轻量应用云服务器,8M带宽,一年也就七十多块。

下载frp

https://github.com/fatedier/frp/releases中下载最新的frp,我的云服务器系统为ubuntu20.04,此时相应的最新版本为frp_0.39.1_linux_amd64.tar.gz

解压frp

tar -xzvf frp_0.39.1_linux_amd64.tar.gz

编辑frps.ini

解压后文件夹中有两类文件,一类以frps开头,表示frp服务端(server)相关文件,另一类以frpc开头,表示frp客户端(client)相关文件。要将云服务器配置为frp服务端,所以要修改frps.ini文件

[common]
bind_port = 7000
bind_addr = 0.0.0.0

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

编辑云服务器防火墙规则

在防火墙处允许frp服务端、客户端的端口请求,这里的7000、7500端口是服务端端口,5900映射到客户端的远程rdp桌面端口,2222映射到客户端的远程ssh端口。

在这里插入图片描述

启动frp服务端

./frps -c ./frps.ini

在该命令后加&即可在后台运行frp

在本地浏览器中输入公网ip:7500即可登陆frp服务端的dashboard,用户名和密码就是frps.ini中配置的admin

内网主机配置

下载frp

与云服务器一致

编辑frpc.ini

[common]
server_addr = 公网IP地址
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

[rdp]
type = tcp
local_ip = 127.0.0.1           
local_port = 5900
remote_port = 5900  

启动frp客户端

./frpc -c ./frpc.ini

配置ssh服务端

如果想要使用远程终端,或者使用VScode远程连接内网主机,那就需要用到ssh,ubuntu系统上安装openssh-server即可启动ssh服务:

sudo apt-get install openssh-server

此时在外网设备中打开命令行,输入:

ssh 用户名@公网ip:2222

即可打开内网主机的ssh终端

如果外网设备上安装了vscode,则内网主机的ssh远程配置为:

Host 主机名
  HostName 公网ip
  User 用户名
  Port 2222
  ForwardAgent yes

配置远程桌面

参考:搭建Window10 VNC远程访问ubuntu20.04

使用ss -lnt可查看远程桌面是否开始监听,如果出现以下字符即已开始监听:

LISTEN  0        5                0.0.0.0:5900           0.0.0.0:*   

在配置frp客户端时,我们将内网主机的5900端口映射到云服务器的5900端口,这样在外网设备上使用公网ip:5900即可访问内网主机的桌面。

报错处理:Ubuntu 20.04 Xrdp 远程桌面黑屏

参考

https://blog.youkuaiyun.com/KerasCat/article/details/122610620

<think>好的,我现在需要帮助用户了解如何使用FRP实现云服务器内网穿透配置。首先,我要整理用户提供的引用内容,这些引用提到了FRP配置步骤、服务端和客户端的设置、以及相关的系统服务配置。用户的问题主要集中在教程上,所以需要按照步骤来组织回答,确保结构清晰。 首先,我应该从准备工作开始,包括下载FRP、安装服务端和客户端。根据引用[2],用户需要从GitHub下载FRP的发布版本,并安装服务端在Linux上。引用[3]提到服务端部署在CentOS,客户端在Windows,所以需要区分不同系统的配置。 接下来是服务端配置。引用[1]和[4]都提到了修改frps.ini文件,设置bindPort和token。需要强调这些关键参数,并说明如何通过systemd配置服务(如frps.service),确保服务端可以自动启动。 然后是客户端配置。引用[3]中的例子是Minecraft服务器在Windows上,所以需要展示客户端配置文件frpc.ini的示例,包括serverAddr、serverPort、token,以及具体的穿透类型(如tcp、http)。需要说明不同的应用场景如何调整配置,比如远程桌面或Web服务。 启动服务部分需要分别指导服务端和客户端的启动命令,Linux用systemctl,Windows用命令行。可能还需要提到验证服务是否成功,比如检查端口监听情况或日志输出。 最后,生成相关问题,帮助用户深入理解。比如如何配置多端口、安全优化方法、故障排查等。需要确保问题覆盖用户可能遇到的后续疑问,并参考引用中的内容,比如引用[4]提到的远程桌面配置。 在整理过程中,要注意使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$,但当前问题不涉及数学公式,可能不需要使用。但需要检查是否有其他格式要求,如代码块用三个反引号包裹,并标明语言。 还要确保回答结构符合用户要求:逐步说明,引用标识自然添加。例如,在提到修改frps.ini时,引用[1]和[4]的相关步骤,添加[^1][^4]。 可能需要注意的细节:服务端和客户端的配置文件名称(frps.ini vs frpc.ini),端口的正确设置,token的安全性,以及如何配置不同的穿透类型(如TCP、HTTP)。引用[3]中的例子是Minecraft,可能需要说明如何映射TCP端口,而引用[4]是远程桌面,可能涉及RDP的默认端口3389。 需要确认步骤是否完整,没有遗漏关键点,比如防火墙设置(如开放端口),这可能在一些教程中提到,但用户提供的引用中没有明确说明,可能需要提示用户检查防火墙或安全组规则。 总结步骤:准备→配置服务端→配置客户端→启动→验证。每个步骤引用相关的资料,确保用户能按照指引操作。可能还需要提醒用户替换示例中的IP、端口、token为实际的值,避免直接复制粘贴导致错误。</think>### 分步教程:使用FRP实现云服务器内网穿透 #### 1. **准备工作** - **下载FRP** 从GitHub下载对应系统的FRP客户端和服务端程序[^2]。 ```bash wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz tar -zxvf frp_0.61.0_linux_amd64.tar.gz ``` - **服务端与客户端划分** - **服务端**:部署在云服务器(如CentOS)[^3]。 - **客户端**:部署在内网设备(如Windows电脑)。 --- #### 2. **配置服务端(云服务器)** 1. **修改配置文件** 进入解压目录,复制并编辑`frps.ini`: ```bash cd frp_0.61.0_linux_amd64/ cp frps.toml frps.ini vi frps.ini ``` 添加以下内容(以TCP穿透为例): ```ini [common] bind_port = 7000 # 服务端监听端口 authentication_method = token token = your_secure_token # 自定义令牌[^4] ``` 2. **配置系统服务(可选)** 创建`frps.service`文件实现开机自启: ```bash sudo vim /etc/systemd/system/frps.service ``` 内容如下: ```ini [Unit] Description=Frp Server Service After=network.target [Service] User=root ExecStart=/path/to/frps -c /path/to/frps.ini [Install] WantedBy=multi-user.target ``` --- #### 3. **配置客户端(内网设备)** 1. **编辑`frpc.ini`** 示例配置(映射内网SSH服务): ```ini [common] server_addr = 云服务器公网IP # 替换为实际IP server_port = 7000 authentication_method = token token = your_secure_token # 与服务端一致[^4] [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 # 通过云服务器的6000端口访问内网SSH ``` 2. **其他场景配置** - **远程桌面(Windows)**:将`local_port`改为`3389`,`remote_port`自定义。 - **Web服务**:使用`type = http`并配置子域名。 --- #### 4. **启动服务** - **服务端**: ```bash sudo systemctl start frps sudo systemctl enable frps ``` - **客户端**: Windows双击`frpc.exe`或命令行启动: ```powershell ./frpc -c frpc.ini ``` --- #### 5. **验证穿透效果** - 通过云服务器的公网IP和`remote_port`访问内网服务。 例如: ```bash ssh -p 6000 用户名@云服务器公网IP # 访问内网SSH ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值