方案一:机构内网
利用所在学校/公司的局域网(内网)。
方案二:ZeroTier
First:
到ZeroTier官网(https://www.zerotier.com/)注册一个账号,然后点击下方的CREATE A NETWORK即可创建一个自己的专用虚拟专用局域网如②,同时复制②这里的NETWORK ID后面会用到。
Second:
点击官网导航栏的Download选项,选择下载Windows版本,下载完成后双击安装,安装完成打开
Third:
运行软件后可能没有弹出界面,这时候可以去看电脑右下角的”隐藏图标“那里,点开隐藏图标,然后点击ZeroTier,接着点击“Join New Network”加入新的虚拟网络。
这时候会弹出一个界面如下,在里面填入第一步复制的NETWORK ID并点击Join即可连接。
Four:验证:
这里我们可以打开CMD命令行,输入ipconfig来查看是否成功分配到虚拟网的IP:
Five:
回到第一步创建虚拟局域网的界面,点击NETWORK ID进入可以看到有四个选项:
点击Settings可以编辑局域网名称,设置相应的描述等等
点击Members可以管理已经加入该局域网的成员。为了实现远程电脑控制,我们需要两台Windows的IP的前三个网段相同,例如172.83.56.xx和172.83.56.yy。所以在Members这里(如下图)点击①输入自己设置的IP,点击②确认,可以点击删除多余的其他IP,只保留自己需要的IP地址即可。
Six:
方案三:FRP内网穿透
3.0 FRP+远程桌面指南
名称 | 服务器端 | 客户端 | 连接端 |
---|---|---|---|
含义 | 阿里云服务器上的frp设置 | 被连接的Windows端设置 | 远程操控连接的Windows端 |
3.1 服务器购买
3.1.1 服务器公网IP:47.113.227.243
3.2 服务器端frp设置
3.2.1 下载Linux版frp
- 参考链接
- https://blog.csdn.net/shengshengka/article/details/123587663?ops_request_misc=&request_id=&biz_id=102&utm_term=FRP + Microsoft 远程桌面&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-123587663.142v93insert_down28v1&spm=1018.2226.3001.4187
- https://so.csdn.net/so/search?spm=1001.2101.3001.4498&q=FRP %2B Microsoft 远程桌面&t=&u=
- https://blog.csdn.net/mg0324/article/details/128022678?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169321427916800185864268%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169321427916800185864268&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-128022678-null-null.142v93insert_down28v1&utm_term=FRP %2B Microsoft 远程桌面&spm=1018.2226.3001.4187
- https://blog.csdn.net/Kyh_h/article/details/124001277?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169321427916800185819195%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169321427916800185819195&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-124001277-null-null.142v93insert_down28v1&utm_term=FRP %2B Microsoft 远程桌面&spm=1018.2226.3001.4187
下载FRP的Linux版本:
https://github.com/fatedier/frp/releases
直接从Windows拖拽过去即可:
3.2.2 解压
将压缩包解压缩并且重命名为frp文件夹,然后移动到指定目录下(这里我是用/usr/local
目录)
tar -zxvf frp_0.40.0_linux_amd64.tar.gz
mv frp_0.40.0_linux_amd64.tar.gz frp
mv frp /usr/local
3.2.3 编辑frps.ini配置
然后进入目录,编辑以下文件:
cd /usr/local/frp
vim frps.ini
将frps.ini文件里面的内容替换为:
[common]
#设置监听端口
bind_port = 7000
#设置连接服务器的授权码,客户端需要用
token = 12345
#设置frp服务器的控制页面端口
dashboard_port = 7500
#frp服务器控制页面的用户名和密码,这个是可选的
#dashboard_user = abc
#dashboard_pws = 1234567
3.2.4 防火墙设置
首先需要在服务器系统中打开端口:
# 出现下属错误是因为防火墙尚未打开
[root@fengyuliusu frp]# firewall-cmd --zone=public --list-ports
FirewallD is not running
# 查看防火墙状态
[root@fengyuliusu frp]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
# 打开防火墙
[root@fengyuliusu frp]# systemctl start firewalld
[root@fengyuliusu frp]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2023-09-20 18:46:14 CST; 2s ago
Docs: man:firewalld(1)
Main PID: 23119 (firewalld)
Tasks: 2 (limit: 11708)
Memory: 25.3M
CGroup: /system.slice/firewalld.service
└─23119 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
Sep 20 18:46:14 fengyuliusu systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 20 18:46:14 fengyuliusu systemd[1]: Started firewalld - dynamic firewall daemon.
Sep 20 18:46:15 fengyuliusu firewalld[23119]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option.
firewall-cmd --zone=public --list-ports 查看已经打开的端口
firewall-cmd --zone=public --query-port=7000/tcp 查看7000端口是否打开
firewall-cmd --zone=public --add-port=7000/tcp --permanent 打开7000端口
firewall-cmd --zone=public --add-port=7500/tcp --permanent 打开7500端口
firewall-cmd --reload 使前面的配置规则生效
firewall-cmd --zone=public --list-ports 再次查看已经打开的端口,确认是否已开启
3.2.5 启动服务器FRP
输入启动命令./frps -c frps.ini
启动frp服务:
配置完端口号,在浏览器输入:47.113.227.243:7500
能看到frp服务已经启动:
3.2.6 设置FRP自启动
为了可以让frp在服务器后台自动启动运行,先Ctrl+C停止运行当前的frps,然后进入/etc/systemd/system
文件夹里,创建一个frp.service文件:
# 进入system文件夹
cd /etc/systemd/system
vim frp.service
然后在文件中输入以下内容:
[Unit]
Description=frp service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=on-failure # or always, on-abort, etc
[Install]
WantedBy=multi-user.target
保存上述文件内容后,继续在shell命令行执行以下命令:
systemctl daemon-reload 重新加载systemd守护进程的配置文件的命令,使上面的修改生效
systemctl enable frp 设置后续系统启动时自动启动frp服务
systemctl start frp 开启运行frp
systemctl status frp 查看frp状态
systemctl restart frp 如果后续修改了frp配置,使用此命令重启frp
3.3 客户端FRP设置
3.3.1 下载解压frp
3.3.2 配置frpc.ini
[common]
server_addr = 47.113.227.243
server_port = 7000
token = 12345 #服务器端frps.ini里的token,要一致
#[]随意取名,3389是windows远程控制的端口
[rdclient]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389
#以下是根据需要可选的
#配置网络文件共享系统
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002
#通过ssh远程连接
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
3.3.3 启动frp
./frpc -c frpc.ini
出现报错:
3.3.4 如何修改阿里云端口开放规则
首先进入阿里云首页搜索“云服务器ECS”,然后点击ECS控制台进入:
继续点击实例名称:
点击配置安全组规则:
点击管理规则:
点击快速添加:
选择全部,然后点击确定:
添加完毕结果如图:
这时候点击上图的编辑,更改端口为自己想要的端口号并保存即可:
3.3.5 报错
可能遇到如下两种报错(③是成功启动之后的输出):
①处的报错是因为阿里云服务器端安全组规则里未添加开放端口号;
②处的报错是因为客户端的frpc.ini配置文件中多了以下内容:
3.3.6 客户端启动frp成功
启动命令:frpc.exe -c frpc.ini
PS D:\Programming\frp> .\frpc.exe -c frpc.ini
2023/09/20 20:19:06 [I] [root.go:220] start frpc service for config file [frpc.ini]
2023/09/20 20:19:06 [I] [service.go:301] [f387edc21c882c69] login to server success, get run id [f387edc21c882c69]
2023/09/20 20:19:06 [I] [proxy_manager.go:150] [f387edc21c882c69] proxy added: [rdclient smb ssh]
2023/09/20 20:19:06 [I] [control.go:172] [f387edc21c882c69] [rdclient] start proxy success
2023/09/20 20:19:06 [I] [control.go:172] [f387edc21c882c69] [smb] start proxy success
2023/09/20 20:19:06 [I] [control.go:172] [f387edc21c882c69] [ssh] start proxy success
3.3.7 配置客户端frp自启动
新建一个文本文件frpstart.txt,输入以下内容并保存,然后将文件名后缀修改为.bat
@echo off
cd /d "D:\Programming\frp"
frpc.exe -c frpc.ini
然后将该文件移动到C:\Users\Shawn George\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
目录下,以后电脑便能开机自动运行frp服务啦。
3.3.8 将frp文件夹添加到Windows扫描排除项
首先进入设置,进入病毒和威胁防护设置管理:
然后下拉找到排除项,并点击”添加或删除排除项“:
选择添加文件,将frpc.exe程序添加到排除项:
或者选择文件夹,然后将frp文件夹整个添加到排除项:
3.4 连接端设置
3.5 常见报错解决
3.5.1 被连接端用户密码设置问题
很奇怪的是,由于我的电脑在登录的时候选择的是Microsoft账户登录,所以出现了远程连接不上的问题。具体描述如下:
我的电脑使用账户为:SuTianhe(密码:123456);而C盘的Users用户目录下当前用户名称为:Shawn George,这是由于之前操作过改过名字。然后在远程连接的时候不管用哪个用户名都连接不上。
两边的当前用户账户名称不一致:
所以接下来我尝试了两种方法来解决这个问题:
方法一:新建用户
另外新建用户用于远程连接,新建的用户共享了绝大部分的软件和文件,但是软件本身的数据是空白的,比如说谷歌浏览器在账户中就是完全空白的,处于未登录、没有任何历史数据的情况。远程连接本身的目的,就是为了获取到另一台电脑的文件和软件使用数据,所以显然这个新建用户的方法并不能解决我们的远程连接需求。
方法二:改为本地账户登录
在Windows设置——>账户——>账户信息中,选择改用本地账户登录:
输入密码确认更改:
输入新的本地账户信息:
注销并完成:
下次登录的时候就完成了账户的更换,即保留了当前用户的所有软件登录信息、使用信息和系统设置、桌面布局等,仅仅是换了个用户登录,其他都保持不变。
至此,后续远程连接的时候便可以使用刚刚设置的账户:fengyu(123456)来登录使用。