远程访问安装xfce4的内网服务器

内容转载自我的博客

1. 目的和机器信息

云主机A(服务端),购买于云服务器提供商,以下IP、端口、用户名、密码均为示例:

IP: 67.89.12.34
默认开启ssh的22端口,用户名为ubuntu,密码为Test&123456+pwd
手动配置安全组,放通7000、8000-8100端口的TCP连接(端口可任意设置,不与其他服务冲突即可)
7000端口用于服务端(frps.ini中的bind_port)与客户端(frpc.ini中的server_port)建立基本通信、鉴权等
         一个服务端可以用同一个端口连接不同的客户端
8000-8100端口用来进行转发,只在客户端的配置文件frpc.ini中设置remote_port,每个端口转发不同的服务
         可以是一台内网服务器有多个服务;也可以是多台内网服务器,每台有不同数量的服务

内网服务器B(客户端),自己购买的配置较高的服务器,但是没有公网地址,所以只能局域网访问,安装ssh以便于其他用户可以ssh连接到本机:

IP: 192.160.0.135
内网服务器B安装ssh,选择22端口,用户名为myserver,密码为Myser123456ver
将内网服务器B的22端口,转发到云主机A的8000端口
    则用户C可以使用如下代码来远程ssh连接内网服务器B
    ssh -p 8000 myserver@67.89.12.34
    使用如下代码来将内网服务器B的/home/myserver/test.txt文件下载到用户C的机器上
    scp -P 8000 myserver@67.89.12.34:/home/myserver/test.txt ./Desktop/

用户C(用户端),只需要具备ssh连接的软件Xming软件(用于显示内网服务器B的GUI,若只需要访问内网服务器B的终端,则用户不需要安装此软件)
frp的系统架构和最终实现的效果如下图

frp-architecture.png

2. 云主机A安装与启动frps

步骤见云主机安装frp-server

3. 客户端B下载与配置frpc

在github仓库frp根据本机版本(64位linux)下载linux-amd64版本(不需要客户端与云主机的CPU位宽一致,但是frp的版本号尽量保持一致),解压为文件夹frp_linux_amd64并放在/home/myserver/目录下,在frp_linux_amd64文件夹创建log目录用于保存日志。修改frpc.ini文件为如下

[common]
# 云主机A的公网ip
server_addr = 67.89.12.34
# 与云主机端frps.ini文件中的bind_port保持一致
server_port = 7000

# 客户端与服务端通信的身份验证令牌
token = ToKen&pwd+123for56

# 设置管理地址,用于通过http api控制frpc的动作,如重新加载
# admin_addr = 127.0.0.1
# admin_port = 7400
# admin_user = admin
# admin_passwd = admin

# 初始连接池的数量,默认为0
pool_count = 5

# 客户端日志存储位置
log_file = /home/myserver/frp_linux_amd64/log/frpc.log
# 保存日志的等级trace, debug, info, warn, error
log_level = info
# 最大保存天数
log_max_days = 7

# 是否启用tcp复用,默认为true
tcp_mux = true

# 代理配置段名称,如果上面配置user=your_name,则显示为your_name.ssh
# 保证所有的客户端Bi的所有frpc.ini文件中的配置端的名称都不要重复
[ssh_B1_01]
# 协议默认tcp,可选tcp,udp,http,https,stcp,xtcp
type = tcp
# 本地地址
local_ip = 127.0.0.1
# 本地端口
local_port = 22
# 在服务器端开启的远程端口,即用户使用自己电脑ssh连接时的端口
remote_port = 8000

4. 设置frpc开机自启动(systemd)

打开frp_linux_amd64文件夹下的systemd目录,编辑frpc.service文件(frpc@.service文件只是多了个自定义ini文件的功能),将其中的user=nobody改为user=myserver(即本机的一个用户名),如果不改,启动时候会报错无法写入日志文件,权限禁止
然后修改ExecStart、ExecReload中的路径为自己的文件路径
将修改后的frpc.service文件复制到/etc/systemd/system/sudo cp ./frpc.service /etc/systemd/system/
激活frpc开机启动:systemctl enable frpc
手动运行frpc服务:systemctl start frpcservice frpc start
手动停止frpc服务:systemctl stop frpcservice frpc stop
手动重启frpc服务:systemctl restart frpcservice frpc restart
查看frpc运行状态:systemctl status frpcservice frpc status
关闭frpc开机启动:systemctl disable frpc

5. 测试ssh连接内网机器

保证frps.servicefrpc.service处于运行状态,用户C在本机使用ssh命令即可连接到内网服务器B:

  • 使用如下代码来远程ssh连接内网服务器B
    ssh -p 8000 myserver@67.89.12.34
  • 使用如下代码来将内网服务器B的/home/myserver/test.txt文件下载到用户C的机器上
    scp -P 8000 myserver@67.89.12.34:/home/myserver/test.txt ./Desktop/

6. 安装Xming

从官网下载Xming软件,也可选择蓝奏云下载,然后正常安装即可。安装完成后打开XLaunch保持默认配置一直下一步到完成即可,具体来说就是

  • Select display settingsMultiple windowsdisplay number0
  • Select how to star Xming选择Start no client
  • Specified parameter settings设置为选中Clipboard,其他不选或不填
  • Configuration complete选择Save configuration,自己保存到喜欢的位置

然后打开Xming软件,保持运行在后台

7. 安装及配置Putty

从官网下载Putty软件并安装,也可选择蓝奏云下载(移除文件的.txt后缀,双击安装即可),打开C:\Program Files\PuTTY\文件夹双击putty.exe软件,在弹出界面依次设置

  1. Session选项:Host Name填写67.89.12.34Port填写8000
  2. ConnectionData选项:Auto-login username填写myserver
  3. SSHX11选项:选中Enable X11 ForwardingX display location填写localhost:0.0Remote X11 authentication protocol选中MIT-Magic-Cookie-1
  4. Session选项:Saved Sessions填写你要保存的配置名字MyServerConf,然后点击右侧的Save按钮即可保存成功

此时即在ssh登录到目标机器后,使用代码将xfce4的窗口显示到本机的Xming软件中,并可以进行交互

8. 配置Putty一键打开内网机器的软件

首先依次创建两个.sh脚本(它们会被putty发送到目标机器上,在登录ssh成功后立即自动执行),这里的两个文件都是示例
文件start_chrome.sh,内容如下:

#!/bin/bash
google-chrome

文件start_display.sh,内容如下:

#!/bin/bash
cd Desktop/mywindowmanager/
./display.sh

将它们放置在C:\Program Files\PuTTY\文件夹下,即与putty.exe文件同级(只是为了方便)
然后在其他位置创建一个启动软件的批处理文件start_auto_putty.bat,内容如下:

cd "C:\Program Files\PuTTY"
:: putty.exe -load MyServerConf -pw Myser123456ver -m start_chrome.sh
putty.exe -load MyServerConf -pw Myser123456ver -m start_display.sh

putty.exe-pw选项后跟服务器的密码,至于服务器的ip、登录端口和用户名均在MyServerConf保存;-m选项表示ssh连接成功后立即在服务器上执行的脚本
最后,双击批处理文件start_auto_putty.bat,即可自动打开装有xfce4的服务器上指定的GUI程序

注意事项

如果遇到显示GUI报错

Gdk-CRITICAL **: file gdkfont.c: 1ine 237 (gdk_font_ref): assertion `font !=NULL` failed.
Gdk-CRITICAL **: file gdkfont.c: line 335 (gdk_string_width): assertion `font !=NULL` failed.
Gdk-CRITICAL **: file gdkfont.c: line 411 (gdk_text_width_wc): assertion `font !=NULL` failed.

可能需要安装VcXsrv来作为显示管理器,下载最新版本( 目前64位版本1.20.8.1)并安装(第6步也就不需要了)
打开目录下的C:\Program Files\VcXsrv\xlaunch.exe软件,配置各项设置然后保存,可参考如下内容来配置选项(也可直接复制下面内容并创建文件VcXsrv.xlaunch,将内容写入保存)

<?xml version="1.0" encoding="UTF-8"?>
<XLaunch 
    WindowMode="MultiWindow" 
    ClientMode="NoClient" 
    LocalClient="False" 
    Display="-1" 
    LocalProgram="xcalc" 
    RemoteProgram="xterm" 
    RemotePassword="" 
    PrivateKey="" 
    RemoteHost="" 
    RemoteUser="" 
    XDMCPHost="" 
    XDMCPBroadcast="False" 
    XDMCPIndirect="False" 
    Clipboard="True" 
    ClipboardPrimary="True" 
    ExtraParams="" 
    Wgl="False" 
    DisableAC="False" 
    XDMCPTerminate="False"
/>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容