外网环境下基于Frp、VNC技术远程访问计算机,实现内网穿透
之前文章先后向大家介绍了 Frp内网穿透原理,并 以访问内网samba服务为例,详细介绍了远程访问内网服务器方法,之后有小伙伴留言建议出一期FRP远程访问计算机的文章。
之前曾在评论区,推荐了两款计算机远程登录工具(两款都有PC端和移动端)。
第一款是TeamViewer(PC端和移动端同名)。
下载链接:/s/1eJHQNcwj2lrgHBZYfWs1_A 提取码:tah3
第二款是VNC远程登录工具,PC端叫做VNC-Server,移动端叫做VNC-Viewer。
PC端下载链接:/s/1nNdJnlCI_Tl-nQ0BtmkTBA 提取码:750b
针对TeamViewer,已经给用户提供了内网穿透环境,下载后可以通过右键状态栏图标开启无人值守模式,之后无需记忆远程密码,能够直接通过无人值守设置的密码进入目标计算机,此外还可以直接文件查看与传输。因此从上手难易程度来看,用户可以直接使用TeamViewer进行内网计算机的远程访问,相反,从安全性角度而言,VNC是首选,但VNC需要用户自己搭建穿透服务。
一、配置Frp
1. frps配置:
sudo apt-get updatewget /fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gztar -zxvf frp_0.17.0_linux_amd64.tar.gz #解压缩:tar xvf 文件名cd frp_0.17.0_linux_amd64#进入解压目录#修改frps.ini文件sudo vim ./frps.ini添加以下内容:
[common]bind_addr = 0.0.0.0 # 0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6.bind_port = 7000 # 客户端与服务端进行通信的端口,即frp服务端口,需与客户端server_port一致dashboard_port = 7500 # 控制台端口 通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示 通过 http://[server_addr]:7500 访问 Dashboard 界面,用户名密码默认都为 admin。
#后台保持启动 需要在frp_0.17.0_linux_amd64目录下操作nohup ./frps -c ./frps.ini &
返回:nohup: ignoring input and appending output to ‘nohup.out’ 代表执行成功,ctrl+c关闭即可;用ps -ef 会在进程中看见frp工作进程。
不要忘记放行VNC的默认端口5900。
2. frpc配置(即需要远程访问的计算机,本文以windows计算机为例):
点此下载与服务端对应的frp版本
将frp压缩包解压后修改frps.ini文件
[common]server_addr = your_server_ip#VPS服务器IPserver_port = 7000 [range:VNC]type = tcplocal_ip = 127.0.0.1local_port = 5900#5900是VNC的默认端口remote_port = 5900
由于frp目前没有图形化界面,所以我们不能直接点击 frpc.exe 运行程序,而是要打开 Windows 的命令行运行。
#开启命令行窗口CTRL + R ——> cmd#前往frp下载目录cd C:\Users\john\Desktop\工具\frp_0.17.0_windows_amd64#启动frpfrpc.exe -c frpc.ini
接下来会出现上述提示,表示连接成功,不要关闭这个窗口,否则 frp 就退出了。
在这里对两个最为常见的frp启动报错进行说明:
“login to server failed: EOF”
这个报错常常是因为服务端与客户端frp版本号不一致导致的。
“login to server failed: broken pipe broken pipe”
这个报错常常是由于frpc.ini配置错误导致的
计算机不要忘记放行5900端口
3. frp Windows 客户端的的开机自启:
Frp 成功连接后,我们遇到了两个问题,其一,每次开机Frp没有实现自启,需要手动输入命令开启,过于繁琐;其二,我们不想一直看到黑色窗口,希望能够后台执行。
本文主要采用vbs方式实现上述功能,具体操作方法如下:
(1) 创建txt文件并打开
(2) 在txt文件中写入:
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c C:\Users\john\Desktop\工具\frp_0.17.0_windows_amd64\frpc.exe -c C:\Users\john\Desktop\工具\frp_0.17.0_windows_amd64\frpc.ini",vbhide
其中“ cmd /c ”后写入的 frpc.exe 和 frpc.ini 的绝对路径。
(3) 另存为——>更改后缀为vbs——>保存类型改为“所有文件”——>保存
(4) 打开 Windows 的开始菜单——所有程序——启动——右键点击启动——打开所有用户,这样就打开启动文件夹了。
(5) 将 frpc.vbs 右键拖动到启动文件夹,在当前位置创建快捷方式。
经过以上设置,以后每次开机 frpc 就会自动启动了。
有部分机型用户反映,vbs不能在登陆windows前运行,这也意味着对于设置了开机账号密码的用户来说,如果想要实现全自动化操控计算机(远程开机 —— 远程登录 —— 远程操控),在远程登录环节将会受阻,自然也就无法使用VNC远程控制主机了。这显然是不妥的,因此在这里给两个亲测有效的解决方案:
方法一:
打开组策略(GPEDIT.MSC)定位到计算机配置—Windows设置—脚本(启动/关机)在右侧双击启动在”启动属性”中添加需要运行的vbs方法二:
打开 任务计划工具(控制面板 ——> 管理工具 ——> 任务计划程序)在创建任务过程中,触发器(计划)选择“计算机启动时(在系统启动时)”二、远程访问(以移动端为例)
在计算机开启VNC-Server环境下,移动端打开VNC-Viewer——>点击右上角 + ——>输入VPS服务器IP:5900——>自定义连接名称——>Save
首次登陆要求输入用户名和密码(即计算机的开机用户名和密码),为方便下次远程,可以选择记住密码,最后点击Continue
此时远程访问开启,计算机端也会收到如下提示。
至此,外网环境下基于FRP、VNC技术,实现了内网穿透,成功远程访问内网计算机。
能够远程访问计算机了,难道不再进一步实现远程开机?点此查看!