客户端电脑想要直接访问服务端电脑是不行的,因为服务端电脑是内网机器,没有公网IP,不能直接通过网络来访问。
那么如何才能访问服务端的电脑呢?答案是用frp,简单来讲,通过frp将具有公网IP的机器(这里用云服务器)的一个端口映射到服务端机器,当客户端访问云服务器的映射端口时,就能访问到服务端机器。
本博文讲解如何 在客户端 通过远程桌面的方式 连接到服务端的方法。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。frp官方文档
需要准备3台机器,具体描述如:
机器 | 名称 | 系统 | frp | 备注 |
客户端 | 电脑A | 64位 Windows10 | / | 用于访问,与电脑C处于不同的网络 |
云服务器 | 电脑B | 64位 Linux | 需安装配置frps | 有公网IP,需要开启bind_port和remote_port两个端口 |
服务端 | 电脑C | 64位 Windows10 | 需安装配置frpc | 用于提供服务,与电脑A处于不同的网络 |
下载地址
1.云服务器(电脑B)是64位的Linux系统,需要下载 frp_0.33.0_linux_amd64.tar.gz
2.服务端(电脑C)是64位的Windows系统,需要下载frp_0.33.0_windows_amd64.zip
注意:这个过程国内下载速度可能很慢,可以到网盘地址下载,提取码:36fk
解压frp
将 frp_0.33.0_linux_amd64.tar.gz
文件上传到云服务器,按如下命令操作:
# 解压
[root@master frp]# tar -zxvf frp_0.33.0_linux_amd64
# 进入解压后的目录
[root@master frp]# cd frp_0.33.0_linux_amd64
# 查看包含的文件
[root@master frp_0.33.0_linux_amd64]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
注意:云服务器(机器B)只关注 frps 及 frps.ini
配置frps.ini
修改 frps.ini 文件配置
[common]
bind_port = 7000
token = Hello...@@@
启动frps
# 方式一:普通启动,终端关闭或连接失效时无效
[root@master frp_0.33.0_linux_amd64]# ./frps -c ./frps.ini
# 方式二:后台启动(2选1)
# nohup启动,运行日志会输出到./nohup.out文件中 &表示后台运行
[root@master frp_0.33.0_linux_amd64]# nohup ./frps -c ./frps.ini &
# nohup启动,不输出日志到文件,>/dev/null表示 输出的内容到一个黑洞里,即不保存输出 2表示错误 1表示标准输出
[root@master frp_0.33.0_linux_amd64]# nohup ./frps -c ./frps.ini >/dev/null 2>&1 &
# 小知识
Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
0——标准输入(stdin)
1——标准输出(stdout)
2——标准错误(stderr)
注意:普通启动和后台启动只需要执行其中的一条命令
解压frp
将frp_0.33.0_windows_amd64.zip
将放到某个目录下(一般是不含中文、不含空格的目录下),右键 解压, 进入解压后的文件夹下,这里只关注 frpc 及 frpc.ini
配置frpc.ini
修改frpc.ini
[common]
server_addr = yourdomain.com
server_port = 7000
token = Hello...@@@
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000
注意:
1.修改server_addr的值yourdomain.com改为云服务器(电脑B)的公网IP地址或者绑定的域名;
2.token要与frps.ini的token值一致;
3.修改local_port为3389(3389为远程桌面的默认端口)。
启动frpc.exe
双击frpc.exe
或者
cmd进入frpc.exe所在的目录下执行frpc.exe命令
开启远程桌面
点击左下角搜索图标,输入"远程桌面设置",搜到并点击远程桌面设置
点击 启动远程桌面开关,让开关显示开
的状态
按住Win和R键,输入mstsc,回车
点击显示选项
计算机(C):输入frpc.ini
设置server_addr
地址(或域名)及remote_port
,中间用英文冒号隔开,例如:yourdomain.com:6000
用户名:输入服务端(电脑C)的登录用户名,例如:Administrator
点击连接即可连接远程桌面! 如果还连接不上,可以检查相关配置、云服务器的bind_port(7000)和remote_port(6000)两个端口是否已经开放,如果还没有,请登录云服务器的控制台的安全组进行设置。
完成!enjoy it!