Ubuntu远程登陆、SSH图形界面、WOL远程唤醒
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃
实现目标:通过路由器配置路由路径,将拨号获取的公网IP地址指向局域网Ubuntu服务器。家里有两台路由器,一台TPlink负责拨号和有线局域网(A路由),DHCP+ARP连接一台华为路由器(B路由),负责WiFi传输,实现SSH图形界面、WOL远程唤醒等功能。
一.配置A路由
(图1)
图1是A路由的拨号信息,公网IP地址可以作为SSH的登录地址,也可以直接作为A路由的访问地址(需要设定)。
(图2)
设置转发规则:将NAT设置为开启状态,在转发规则中设置虚拟服务器进行IP地址和端口映射。由于路由器B设置的静态IP地址是192.168.2.100,所以这里映射该IP地址,端口分别映射了122和22,其中122端口对应Ubuntu的WiFi网卡,22端口对应有线网卡。(注:之前设置的是DMZ主机,DMZ主机是将映射的主机完全暴露在广域网中的一种全端口映射,可以实现双向通信,所以DMZ主机安全性较差,而且,据说DMZ优先级低于虚拟服务器,有待验证。)
(图3)
(图4)
MAC绑定:有两种绑定方式:图3为DHCP静态地址分配&图4为静态ARP绑定,这里我都将B路由器的MAC地址和192.168.2.100IP进行了绑定,原因后文再说。至此,通过拨号获取的公网IP地址+22/122端口号已经可以访问到B路由。但是拨号获取的公网IP是不稳定的,随时可能发生断线重连,所以需要进行动态DNS。
(图5)
(图6)
动态DNS:需要在路由器提供的DNS服务商注册获取账号,图5所示,这里TP绑定的是花生壳(新版本的TP已经自己开通了这项服务),花生壳可免费注册壳域名,注册成功并申请免费域名,在TP的动态DNS页面填写个人账户信息,连接状态显示连接成功并在下方域名信息处显示账户所拥有的域名(可以拥有多个域名),以上A路由已基本设置完毕。很多人刚注册完花生壳,看到TP显示连接成功就访问域名,发现访问失败。主要的坑有:1、花生壳并非注册后立即可用,需要等20分钟,而且免费域名,在花生壳域名映射服务器是需要排队的,所以速度慢;2、由于不可知的原因,家庭宽带的80端口是被运营商封锁滴,图6所示,打开TP的远端web管理,把端口改为88,设置IP地址为255.255.255.255,如此才能通过壳域名访问TP的管理界面,也可以通过壳域名进行SSH远程登录。
二、配置B路由器
如果电脑是直接连接在A路由的,可以跳过第2步,直接配置服务器即可,B路由只是一个跳转路由。华为路由器比较坑,号称方便易用,其实阉割了大部分的功能。只做简单处理:
(图7)
设置自动获取(DHCP)IP,由于图3和图4中已经将WAN MAC地址进行了绑定,所以WAN IP一定是192.168.2.100,最终连接状态如图7。
(图8)
设置虚拟服务器,进行NAT端口映射,这里分别将22端口和122端口映射到不同的IP地址(设置Ubuntu服务器的有线-201和无线-200网卡地址不同)。
(图9)
静态地址绑定,如图8所示,开启DHCP服务,并分别对服务器的有线及无线MAC进行静态绑定,不知道华为是DHCP绑定还是ARP绑定,估计是DHCP。
至此B路由设置完毕,如想实现远程管理B路由,可将B路由的80端口映射至A路由中。由于华为路由器没有提供修改80端口的服务,所以还是省省吧。AB路由配置完毕,可以实现ssh穿透。但是如果要实现wake on lan,就要做出一些改变。
三、关于wake on lan
先讨论一下关于DHCP和ARP绑定,前面A路由是通过DHCP+ARP绑定的B路由,但是遗憾,我的B路由是华为的A1路由,不支持ARP静态地址绑定,这样就无法wake on lan了。DHCP只是在服务器增加了一条静态地址分配规则,但是并没有在路由规则里进行MAC绑定,没有绑定ARP,其他用户还是可以通过手动配置IP的方法抢IP,另外一些一些恶意软件和病毒还可以加进行ARP欺骗攻击。而且wake on lan的工作机制是主机的网卡仍然保持工作,当路由器接到wake信号后,如果没有通过ARP绑定MAC,路由器是不会把信号发送给主机的。所以为了实现wake on lan,最后还是把主机直接连接在了A路由,必须是有线连接,目前无线网卡还没发现有支持WOL的,可能是因为功耗?
需要修改的很简单,把主机通过有线连接A路由,并将A路由配置中绑定B路由MAC的换成绑定主机MAC即可。
四、服务器主机SSH和WOL配置
主机要实现远程ssh和外网WOL功能(附带一个Teamviewer),以下直接在root账号下操作:
1、查看服务器是否安装了ssh :ps -e | grep ssh*
安装ssh:apt-get install ssh
2、ssh图形界面:
修改配置服务器文件:vim /etc/ssh/ sshd_config。如图10,ssh端口号默认22,将 X11Forwarding设置yes,UseLogin设置no,重启ssh:进入 cd /etc/init.d目录,执行 ./ssh restart。X11是一种面向Unix及类Unix系统的图形界面协议。在网上看到如下的层次关系:Unix本身–>X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)–>X应用程序。由于服务器是Ubuntu16.04,所以支持X11。

(图10)
连接的ssh图形界面的客户端都是通过X11来实现连接的,Windows需要借助三方工具如Xmanager来连接(仅用Xshell是不行的),mac使用的是原生的X11,Ubuntu则需要安装ssh客户端 apt-get install openssh-client,在/etc/ssh/ssh_config配置文件中,找到ForwardAgent yes,ForwardX11 yes,ForwardX11Trusted yes这3个确保是yes。
mac和Ubuntu执行图形界面连接代码基本一致: ssh -X root@XXX.XXX.XXX.XXX,如果ssh修改了端口,可写为ssh -X -p prot root@XXX.XXX.XXX.XXX(如果配置了路由器动态域名DNS,那么可以直接将ssh中的IP地址XXX.XXX.XXX.XXX 替换为域名)。mac在OS X版本后不再随附X11,如有需要,可到官方网站 www.xquartz.org安装免费版,否则无法使用ssh图形界面。
Windows需要借助Xmanager帮助实现ssh。图11为Windows下Xshell登录方式,如需启动图形界面应用程序,则还需要点选隧道设置中的转发X11连接(图11-3)或者直接使用Xmanager中的Xstart(图12)


(图11-1、2、3)

(图12)
据说Gnome桌面也是可以图形传输的http://blog.csdn.net/jlds123/article/details/11054733,传输画面很卡顿,而且目前Ubuntu大部分都默认使用unity桌面了,Gnome还需要另外安装,所以不推荐。如果真想远程连接桌面,不如使用teamviewer。
3、WOL(wake on lan)
WOL功能的实现是在网卡的支持下实现的,所以如果你的网卡不支持还是买个向日葵吧。
查看网卡信息:ifconfig。Linux某些版本网卡命名以不再ethX的命名规则,而是根据固件、拓扑及位置信息分配固定名称,例如这里的eno1表示合并固件或者 BIOS 的名称为板载设备提供索引号的名称(可以理解为主板自带网卡),本来还有块无线网卡,由于不支持WOL,为防止网络冲突已将其禁用。这里eno1的MAC地址即前文所述需要进行ARP绑定和DHCP静态地址绑定的(图3图4)。
确认网卡是否支持WOL:ethtool eno1(如没有ethtool请安装)。如图13,信息中出现“Supports Wake-on:pumbg Wake-on : g”则表示支持WOL。
修改配置文件:nano /etc/rc.local新增2行:
sleep 5
ethtool -s eth0 wol g
nano /etc/init.d/halt修改1行:
NETDOWN = no
(图13)
设置BIOS开启WOL:不同主板设置大同小异,都要实现两步,一是找到Power电源管理或Wake on Lan等类似选项,设置Power on by PCIE为enable;第二部关闭Power电源管理等关于节能的设置。
本地软件推荐:Windows:wake on lan (https://github.com/basildane/WakeOnLAN/releases/tag/2.11.15)如图14
MAC:wake on lan(商店有免费版)
Android:wake on lan http://www.wandoujia.com/apps/net.mafro.android.wakeonlan
Ubuntu:命令行 apt-get install wakeonlan
参考:http://www.linuxidc.com/Linux/2012-07/64696.htm
(图14)
4、关于TeamViewer
只介绍Ubuntu下常用命令:
teamviewer start #TeamViewer user interface (if not running).
teamviewer help #Print this help screen.
teamviewer version #Print version information.
teamviewer info #Print version, status, id.
teamviewer ziplog #Create a zip containing all teamviewer logs (useful when contacting support).
teamviewer license [show|accept] #Interactively agree or show/agree to End User License Agreement.
teamviewer setup #Configure headless modes (non-gui/console)
teamviewer passwd [PASSWD] #Set a password (useful when installing remote (ssh). 注意[]只是标注
teamviewer daemon status #Show current status of the TeamViewer daemon.
teamviewer daemon start #Start TeamViewer daemon.
teamviewer daemon stop #Stop TeamViewer daemon.
teamviewer daemon restart #Stop/Start TeamViewer daemon.
teamviewer daemon disable #Disable TeamViewer daemon - don't start daemon on system startup.
teamviewer daemon enable #Enable TeamViewer daemon - start daemon on system startup (default).
注意:若wol后想用teamviewer登录服务器,需要使用的命令:1、teamviewer daemon start开启teamviewer服务;2、teamviewer info查看teamviewerID信息;3、teamviewer passwd XXX将teamviewer密码修改为XXX。在本地通过ID和密码远程连接teamviewer,若服务器没有连接显示器,则图形界面信息可能不会传输过来,这时候连接teamviewer显示的是控制台信息,解决的办法就是给服务器加一台显示器。
//如需有疑问可与作者私信沟通,转载发表请注明出处,尊重作者劳动成果。
Ubuntu远程登陆、SSH图形界面、WOL远程唤醒的更多相关文章
- 如何为ubuntu server 版本 安装图形界面
强烈建议使用命令行的交互方式,就算你在server上装了图形界面,但是在Linux上,大部分重要的操作还是要通过命令行的方式进行操作. 如何为ubuntu server 版本 安装图形界面 Ubunt ...
- 在本地电脑使用远程服务器的图形界面——包括 MATLAB、PyCharm 等各种软件
在用本地电脑连接远程服务器的时候,大部分时候只能用命令行来操作.虽然可以 在本地电脑用 PyCharm 进行远程调试.在本地电脑远程使用服务器的 Jupyter Notebook.Ubuntu 和 W ...
- 了解一下 Linux 上用于的 SSH 图形界面工具
如果你碰巧喜欢好的图形界面工具,你肯定很乐于了解一些 Linux 上优秀的 SSH 图形界面工具.让我们来看看这三个工具,看看它们中的一个(或多个)是否完全符合你的需求. 在你担任 Linux 管理员 ...
- no screens found! ubuntu进不了图形界面了
no screens found! ubuntu进不了图形界面了 结果是没装显卡 startx error. reinstall xorg, x server doesn't work. driver ...
- 设置ubuntu 默认不启动图形界面
设置ubuntu 默认不启动图形界面 一. 编辑文件/etc/X11/default-display-manager 如果值为/usr/sbin/gdm,则进入图形界面如果值为false,则进入控制台 ...
- Kali 远程登陆SSH
一.配置SSH 编辑/etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,将NO修改为YES //可以用密码登陆 将PermitRootLogin ...
- Cetos 7 命令行登陆与图形界面登陆相互切换
环境:vmware 虚拟机: 系统:Cetos 7 64位: 引言:有一台虚拟机,安装的时候选择的是最小化安装,是没有图形界面的,后来有需求,需要有个图形界面,所以就准备把这个升级下,下面是操作步骤: ...
- Linux系统 ssh图形界面远程
远程Linux系统有图形界面 1.下载xming 并安装启动 2.通过putty登陆虚拟机 3.输入gnome-session
- ubuntu打不开图形界面,显示run in low_graphic mode
我上次因为这个问题重装了ubuntu,结果没两天又有问题了,这次我看到了未重启前的提示,说我的硬盘空间剩0kb,所以我心有余悸的想办法留空间,十分担心会有上次的问题出现,为了验证我的想法,我重启了一下 ...
随机推荐
- Struts+Spring+Hibernate项目整合AJAX+JSON
1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...
- Android 之异步加载LoaderManager
LoaderManager: Loader出现的背景: Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询.拿到数据以后才展 ...
- Jquery一些常用的方法
整理以前的笔记,在学习JavaScript时候,经常会用到一些方法,但是有时忘掉了具体用法,因此记下.方便以后查阅. 这篇博文先说明这些方法的用途: removeClass().remove().cs ...
- Docker入门之二镜像
Docker大部分的操作都是围绕三大核心概念:镜像.容器.仓库.学Docker首先得了解这几个词.这几个词可能平时也会有涉及,但Docker中可能不是同样得概念. 一.三大核心概念 镜像:可能在安装软 ...
- 如何用Python脚本从文件读取数据?
最近自学Python的进度比较慢,工作之余断断续续的看着效率比较低,看来还是要狠下心来每天进步一点点. 还记得前段时间陈大猫提了一口"先实现用python读取本地文件",碰巧今天看 ...
- JSON依赖的选择
json-lib 源码:https://github.com/aalmiray/Json-lib/ 最新版本:2.4 不再更新 <dependency> <groupId>ne ...
- C#之基础
引子:C#是.NET平台所支持的多种语言中的一门编程语言,它是一门面向对象编程语言.面向对象语言的三大基本特性是:封装.继承.多态.学过C#的人肯定都知道,C#和Java极其相似.我已经学过C语言,现 ...
- docker镜像文件导入与导出
工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPO ...
- Redis缓存项目应用架构设计二
一.概述 由于架构设计一里面如果多平台公用相同Key的缓存更改配置后需要多平台上传最新的缓存配置文件来更新,比较麻烦,更新了架构设计二实现了缓存配置的集中管理,不过这样有有了过于中心化的问题,后续在看 ...
- WordPress-基础设置之阅读设置
对于第一次使用Wordpress系统的朋友,请先别着急发布文章及进行其他操作,为了更加科学的使用及管理wordpress,应该需要对其进行相关设置,主要涉及3个部分,一.常规设置,二.阅读设置,三.固 ...