V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
huangya
V2EX  ›  Linux

Linux 内网图形界面远程的办法

  •  
  •   huangya · 2022-03-16 18:35:06 +08:00 · 7490 次点击
    这是一个创建于 762 天前的主题,其中的信息可能已经有所发展或是发生改变。
    迫于开发需要,A 需要远程到内网中的 linux B 进行开发,由于需要在 B 上运行图形界面的程序,所以单纯的 ssh 不行.B 用的是 ubuntu 20.04.

    1.B 上的远程服务端程序必须是非商业版本的。像 teamviewer 这种个人版是不行的。
    2.无需考虑 A 是 linux 还是 windows.客户端我有办法解决.
    1.由于 A 和B在内网,所以应该非常快。对程序的性能要求应该不高,主要是要满足条件 1.
    第 1 条附言  ·  2022-03-17 11:46:10 +08:00
    希望还是能控制整个桌面,不仅仅上单个 GUI 程序。当然单个 GUI 程序是最低限度的要求
    56 条回复    2023-05-27 16:17:32 +08:00
    ysc3839
        1
    ysc3839  
       2022-03-16 18:39:05 +08:00
    xrdp?
    e7
        2
    e7  
       2022-03-16 18:39:11 +08:00
    rustdesk?
    allenforrest
        3
    allenforrest  
       2022-03-16 18:39:40 +08:00
    ToDesk 如何?
    huangmingyou
        4
    huangmingyou  
       2022-03-16 18:40:26 +08:00
    A 机器执行 xhost +; ssh -X B.server 在 B 上运行图像程序,就会在 A 屏幕显示了啊
    thinkershare
        5
    thinkershare  
       2022-03-16 18:40:28 +08:00
    别折腾了, 都不好用, 我就是这一套, 已经搞得快奔溃了!
    如果在内网, 直接用 SSH 加 Xming, 外网都非常难用, 我换个各种方案, 没有一个靠谱的! 如果没有 3D 程序, 特别是游戏这种就还好, 如果有需要显卡的 CUDA 的, 就是一个巨大的坑, 我已经爬出来, 彻底放弃这个破玩意, Windows(A)还好, 如果 A 是 Mac 就更加坑爹, OpenGL 死掉后, 都没法使用显卡硬件加速到了
    Itoktsnhc
        6
    Itoktsnhc  
       2022-03-16 18:40:37 +08:00   ❤️ 1
    VNC + noVnc
    wuhann
        7
    wuhann  
       2022-03-16 18:41:07 +08:00
    你是需要使用 b 上完整的桌面环境的话就 vnc 呗,如果只是运行一个 gui 程序就好的话那就 x11 forwarding ,a 上装个 x server (其实自带 xserver 的 mobaxterm 就挺好的,不过你说个人版不行的话就)
    libook
        8
    libook  
       2022-03-16 18:46:19 +08:00
    SSH 可以开隧道的,隧道可以映射端口转发网络请求。

    如果 A 可以连上 B 的 SSH 的话,可以建立一个 SSH 隧道把 A 上的某一端口映射到 B 上 VNC 的端口,然后在 A 上用 VNC 客户端连本地这个端口,就可以了。
    happyn
        9
    happyn  
       2022-03-16 18:47:12 +08:00
    推荐自家服务,就是专门解决这个事情的,虽然目前比较简陋,但是运营稳定;

    原理同 zerotier 、tailscale 是一样的,我们提供了公共服务器为接入的各个客户端组成虚拟局域网,尽可能打洞走 P2P ,家用宽带打洞成功率非常高,另外 P2P 不成功的时候走我们的服务器中转;

    流量本地加密后传输,保证隐私安全;

    我们有长期稳定的免费服务提供,如果对速度不满意的话,可以付费;年付费很便宜;

    支持 Windows 、Linux 、Android 、MacOS 平台, 不同平台也可以互联;

    客户端代码开源,不放心的可以自行编译运行;

    楼主可以试试:

    官网:
    www.happyn.cn


    发布介绍:
    https://v2ex.com/t/796362
    darknoll
        10
    darknoll  
       2022-03-16 18:48:08 +08:00
    xrdp ,还能几个人同时远程
    happyn
        11
    happyn  
       2022-03-16 18:48:50 +08:00
    组成虚拟局域网后 Linux B 就可以开启 VNC 服务;随便折腾了;
    happyn
        12
    happyn  
       2022-03-16 18:50:28 +08:00
    Linux 端支持 docker 运行,在官网上注册后拿到 服务 ID 、本地密钥、中转服务器地址;

    直接 docker 运行一条命令就可以组网了;
    thinkershare
        13
    thinkershare  
       2022-03-16 18:53:34 +08:00
    另外 xrdp 在 Ubuntu 有巨大的坑, 我在 GitHub 仓库提到 issue 过了 2 年了还是没有解决, 超级卡(Ubuntu 18 好点), 其它版本的 Linux 发行版问题不大, 就是在 Ubuntu20.04 的默认桌面环境上几乎失去可用性. 你自己去 xrdp 的仓库下看看.
    idblife
        14
    idblife  
       2022-03-16 18:56:42 +08:00
    今天试了下 manjaro kde 的 xrdp ,没搞定。。。
    idblife
        15
    idblife  
       2022-03-16 18:56:57 +08:00
    @idblife
    一进去就黑屏
    m1911star
        16
    m1911star  
       2022-03-16 19:04:21 +08:00   ❤️ 1
    一直在用 rustdesk ,强烈推荐
    happyn
        17
    happyn  
       2022-03-16 19:11:45 +08:00
    想多罗嗦两句;我在实际使用过程中发现这种 "远程几台机器互相访问" 的需求其实挺小众的;

    大部分都喜欢 teamviewer ,toDesk 这种桌面级别而且傻瓜化的远程控制;但是对于开发来说,有时候他不仅仅需要一个桌面,还需要访问远程机器商的 ssh ,或者一个 web 服务,或者一个 vnc 服务,或者自建的 mysql 、elasticsearch 、mongo 服务等等等等,或者直接控制多台机器的各种服务......

    这种场景下最灵活的方案,我认为还是 VPN 级别的解决方案,但是传统的 VPN 配置繁琐,而且要求 VPN Server 的带宽好;普通用户折腾这些的成本很高;

    这时候像 Zerotier 、tailscale 、N2N 这种支持 P2P 方式的软件 VPN 解决方案优势就显现出来了:

    * 灵活--组成虚拟局域网后随便折腾各种服务
    * 强壮--运行非常稳定,我有多个服务稳定运行半年多了,基本无感,就跟本地局域网差不多的体验;
    * 流畅--家用宽带的上传带宽足够支撑比较流畅的远程桌面服务了(RDP 、VNC)

    唯一的问题就是中转服务器搭建还需要折腾一下;对于一些 Geek 用户或许就是在自己的 VPS 上面几个命令的事;但是更懒的用户可能就想找个公共服务算了; happyn.cn 就为这些不想花时间折腾的人提供了方便一点的解决方案;
    panzhc
        18
    panzhc  
       2022-03-16 19:39:04 +08:00
    Linux 对 Linux 的话可以考虑下 Spice
    ruidoBlanco
        19
    ruidoBlanco  
       2022-03-16 19:40:32 +08:00
    guacamole
    Tink
        20
    Tink  
       2022-03-16 19:41:21 +08:00 via Android
    x11 forward 就行
    datou
        21
    datou  
       2022-03-16 20:04:01 +08:00
    关键词:x11 forward
    huangya
        22
    huangya  
    OP
       2022-03-16 20:37:03 +08:00
    @e7
    @m1911star
    这个要关掉 wayland
    icepie
        23
    icepie  
       2022-03-16 21:26:54 +08:00
    wayland 也可以用 waypipe
    ungrown
        24
    ungrown  
       2022-03-16 21:30:18 +08:00
    @thinkershare xpra 试过吗?我个人使用是远程连 Windows 就用自带的远程桌面,连 Linux 就用 xpra 。
    很多年前用 x2go ,当时觉得挺好用的,后来不知怎么回事几台设备都不能正常用了,没能成功排障就干脆不用 x2go 了。
    thinkershare
        25
    thinkershare  
       2022-03-16 22:07:13 +08:00
    @ungrown 放弃了, 懒得这特了, 主要是 Mac 连接 Linux 问题太多, 我需要 CUDA 加速查看 PointCloud, 这个没有硬件加速会非常卡, 操作起来极度不流畅, 画面传输的软件在内网还可以, 但一旦跨国(我的 Linux 服务器不在大陆), 就会非常看, VPN 和机场我都测试过了, 延迟是无法接受的, 我现在不折腾了, 重新在家里搭了环境. Linux 的桌面环境我是收购了, 我 10 前用的时候就问题多多, 10 年问题还是多多, 所以我还是只打算使用它的 bash shell, 彻底放弃它的图形, 不想折磨自己, 不是 ROS 这个破软件, 我早就放弃了折腾图像界面了!
    Ediacaran
        26
    Ediacaran  
       2022-03-16 22:42:14 +08:00
    我的用法是,本地跑一个 xlaunch ,远程 zshrc 添加一行 export display=` $SSH_CLIENT | awk '{ print $1}'`:0 (大概这么写)。然后直接起 gui 程序,如 gvim
    zzhzero
        27
    zzhzero  
       2022-03-16 23:54:40 +08:00
    大家看清楚点需求啊,感觉需求就是单纯的需要显示远程 linux 的某个软件的 gui,这个 linux 甚至装没装桌面都不一定,大家推荐各种远程桌面有啥用啊,这个场景下 X11 是最通用的,特别是当你用的是 MobaXterm 这种内建 x11,连多余的软件都不需要装
    bitdepth
        28
    bitdepth  
       2022-03-17 01:36:46 +08:00   ❤️ 1
    需要 GPU 加速,最普通就是 steam remote 這樣的方案
    weston 其實支援 VA-API encoding 後 remote
    dayeye2006199
        29
    dayeye2006199  
       2022-03-17 02:43:15 +08:00   ❤️ 2
    x11 fowarding 可能是侵入式最小的解决方案了。

    1. 基本上不太需要安装额外的软件和设置,服务端安装 Xserver ,客户端有 Xclient 就可以了。如果 AB 都是带图形环境的 linux ,这两个都带上了。
    2. 走的是 SSH 协议,比较安全
    3. 纯内网环境就能用,流量不出内网

    这套方案我读研究生的时候用来运行 matlab 用了好几年,特别适合,久经考验
    daveh
        30
    daveh  
       2022-03-17 07:49:24 +08:00 via iPhone
    xrdp +1
    patrickyoung
        31
    patrickyoung  
       2022-03-17 09:02:30 +08:00
    x11 forwarding
    我自己用 x2go
    tvirus
        32
    tvirus  
       2022-03-17 09:06:07 +08:00
    xrdp +1
    ThirdFlame
        33
    ThirdFlame  
       2022-03-17 09:21:39 +08:00
    anydesk 直连 7070 端口。
    chocotan
        34
    chocotan  
       2022-03-17 09:26:04 +08:00
    zerotier 配合 vnc
    非常棒
    zzzzxxxxxx468
        35
    zzzzxxxxxx468  
       2022-03-17 09:29:59 +08:00
    X11vnc 可以用,配合虚拟显示器,加 lightgdm ,
    mgrddsj
        36
    mgrddsj  
       2022-03-17 10:27:12 +08:00 via Android
    要么 VNC ,要么直接连接 x server
    cat9life
        37
    cat9life  
       2022-03-17 10:52:42 +08:00
    @m1911star 显示自建服务器要购买 license ,但是因为新版本即将发布多以 licence 暂停出售?
    ltkun
        38
    ltkun  
       2022-03-17 10:56:54 +08:00 via Android
    Felldeadbird
        39
    Felldeadbird  
       2022-03-17 10:57:06 +08:00
    VNC 最简单了。
    huangya
        40
    huangya  
    OP
       2022-03-17 11:48:55 +08:00
    @ThirdFlame anydesk 个人版应该上不能放在公司使用.
    MasterMonkey
        41
    MasterMonkey  
       2022-03-17 11:54:37 +08:00 via iPhone
    nomachine 惊艳死你
    2NUT
        42
    2NUT  
       2022-03-17 12:15:17 +08:00
    x server
    2NUT
        43
    2NUT  
       2022-03-17 12:18:08 +08:00
    @dayeye2006199 #29 明明 x11 已经解决问题了, 不知道为啥有那么多重量级方案
    superchijinpeng
        44
    superchijinpeng  
       2022-03-17 12:33:01 +08:00
    xrdp
    NSAgold
        45
    NSAgold  
       2022-03-17 12:51:09 +08:00
    x11 转发
    idblife
        46
    idblife  
       2022-03-17 14:23:35 +08:00   ❤️ 1
    @MasterMonkey
    是哪方面的经验?
    leimao
        47
    leimao  
       2022-03-17 14:44:09 +08:00
    flyingfz
        48
    flyingfz  
       2022-03-17 15:13:39 +08:00
    flyingfz
        49
    flyingfz  
       2022-03-17 15:14:17 +08:00
    我是用这个 脚本 安装的 xrdp ,也是在内网里 , 用起来 还不错。
    wanguorui123
        50
    wanguorui123  
       2022-03-17 15:30:31 +08:00
    VNC
    MasterMonkey
        51
    MasterMonkey  
       2022-03-17 18:53:41 +08:00 via iPhone
    @idblife 超级流畅,看视频,打游戏,搞开发都没问题。linux 没显示器也没关系。他自带

    随意挂载本地远程设备
    idblife
        52
    idblife  
       2022-03-17 19:43:10 +08:00 via iPhone
    @MasterMonkey
    然而我装上后发现连不上,日志里有个 pam 错误,4000 端口都没起来
    levinit
        53
    levinit  
       2022-03-19 09:00:53 +08:00 via iPhone
    为啥不用 vnc 呢😳或者 x11
    想要 gpu 渲染好 turbovnc virtualgl 了解下
    notgoda
        54
    notgoda  
       325 天前 via iPhone   ❤️ 1
    @thinkershare
    @daveh
    @daveh
    @tvirus
    @superchijinpeng
    @flyingfz
    @idblife
    @darknoll
    @darknoll
    @ysc3839 不好意思,借楼问问大家 xrdp 能够用 IPV 4 连吗? arm ubuntu 20.04 上安装了 xrdp ( 0.9.12 版本), 发现端口只监听在 IPV6 , 网上找了半天按照建议的方法修改 /etc/xrdp/xrdp.ini 文件,
    Change port=3389 to port=tcp://:3389

    现在 xrdp-sesman 3350 端口依旧监听 ipv6, 导致连接失败
    :~# sudo netstat -ptan | grep xrdp
    tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 1047/xrdp
    tcp6 0 0 ::1:3350 :::* LISTEN 986/xrdp-sesman


    求助大家该如何排查,谢谢
    ysc3839
        55
    ysc3839  
       325 天前 via Android
    @notgoda 你试过连不上?它这个应该是混合监听,IPv4 也可以连的
    notgoda
        56
    notgoda  
       325 天前 via iPhone
    @ysc3839 是的,防火墙已经全部开放所有 ip 进站连接, 在 Oracle 本机和其他主机上 Tcping 测试 arm 分配的公网 ipv4 地址 152.70.xx.xx 都显示 no route ,但是 Oracle 本机 tcping arm 分配的内网地址 10.0.0.1xx 可以连接通 , 请问有什么排查思路吗?谢谢大佬
    https://imgur.com/a/9BrGvV1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   998 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.