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即可。

     

、服务器主机SSHWOL配置

主机要实现远程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)。

确认网卡是否支持WOLethtool 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显示的是控制台信息,解决的办法就是给服务器加一台显示器。

 //如需有疑问可与作者私信沟通,转载发表请注明出处,尊重作者劳动成果。

 

posted @ 2017-02-16 10:33  负赑屃  阅读(4147)  评论(0编辑  收藏  举报