我需要与我住在印度的朋友分享我的电脑。
他的电脑是 p4,他需要一点马力来计算。
由于我有一台 i5,我想让他使用 vnc 并使用它,但这不允许我同时使用计算机。
有没有办法让不同的用户同时使用电脑?
我读过 Xorg 能够做到这一点,但我不确定这是最好的解决方案,我也不能实现它。
我们在 i5 端有 Ubuntu 12.04 64bit,在 p4 端有 Ubuntu 12.04 32bit。
谢谢你的热心帮助。
小智 5
使用已经可用的内置方法可能是最简单的。如果你们都运行 X,请在 i5 端配置 SSH。确保您配置了 SSH
X11Forward yes
Run Code Online (Sandbox Code Playgroud)
你可能需要在i5端提供网络的路由器上打开22端口,这样p4端才能连接。当 SSH 服务器可以在 Internet 上访问时,很快就会有人试图以蛮力进入机器的方式攻击它;所以,一定要安装和配置一种方法来防止暴力攻击,比如 DenyHosts 或 fail2ban。
您可能希望查看您的路由器以查看它可以使用哪种类型的动态 DNS,然后设置动态 DNS,以便 p4 端可以按名称通过 SSH 连接到您。(也有软件可以做到这一点,我们也可以设计一些黑客方法,如下。)否则,当然,p4 端需要知道您当前的 IP 地址。
对于 p4 端通过 SSH 使用 X 和压缩进行连接:
ssh -X -C username@hostname-or-ip-address
Run Code Online (Sandbox Code Playgroud)
p4端要在i5端使用X应用,直接输入命令即可。
xman
Run Code Online (Sandbox Code Playgroud)
然后xman会在i5端运行,但是在p4端显示。
当然,对 i5 端的一个明显的要求是 i5 端需要为 p4 用户创建一个用户帐户 ( adduser)。
或者,还有更像你提到的 VNC,NX。NoMachine有一个适用于 Linux 的免费商业版本,还有一个开源版本freenx。使用 NX,用户通过 SSH 连接,最终用户将获得一个显示整个桌面的显示,如 VNC 或 RDP。
就个人而言,我使用 NoMachine 的 NX。我的 ISP 每周更改一次我的 IP 地址。我不想为动态DNS付费,也不想为自己设置动态DNS。因此,我设计了一种每天向自己发送一次外部 IP 地址的方法(通过从 cron 运行的脚本)。首先,我将系统设置为使用ssmtp发送邮件,该软件仅用于发送邮件。然后我每天通过 cron ( /etc/cron.daily/ip.sh)运行一次脚本:
#!/usr/bin/env bash
IP_FILE=/tmp/external-ip-address
CURRENT_IP=$(lynx --dump http://checkip.dyndns.org/)
EMAIL_ADDR=me@mydomain.com
if [ -f $IP_FILE ]; then
KNOWN_IP=$(cat $IP_FILE)
else
KNOWN_IP=
fi
if [ "$CURRENT_IP" != "$KNOWN_IP" ]; then
echo $CURRENT_IP > $IP_FILE
mailx -s "External IP Address" $EMAIL_ADDR < $IP_FILE
fi
Run Code Online (Sandbox Code Playgroud)
该脚本需要lynx、bash和mailx( heirloom-mailx)。虽然它与处理数字无关,但远程用户也可以使用sshfsi5 端挂载主目录。使用 X 管理远程文件是一种非常方便的方式。
您可以sudo apt-get install xrdp在 i5 侧安装 xrdp ( ),在 P4 侧安装 Remmina(可从软件中心获得)。这将使他可以访问您的机器桌面。
我建议你为他设置一个新用户,这样你就不会遇到“Firefox 已经在这台机器上运行......”这样的问题,并且你的文件将受到保护并与他的文件分开。
要建立连接,您需要打开与您在 Reminna 中选择的连接类型相对应的端口。我建议您使用 RDP 和 SSH 隧道(您可以配置 Reminna 来单独执行此操作)并在您的机器上打开 SSH 端口 (22)。打开这个端口的安全问题是要考虑的,你应该安装一些东西来阻止暴力攻击(比如fail2ban- 在软件中心也是如此)并且只允许使用 ssh 密钥的 ssh 连接,没有密码和 root 登录 - 可在 中配置/etc/sshd_config)。但如果您不熟悉它,请参阅Ubuntu SSH 文档