本文为作者原创,转载请注明出处(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远程唤醒的更多相关文章

  1. 如何为ubuntu server 版本 安装图形界面

    强烈建议使用命令行的交互方式,就算你在server上装了图形界面,但是在Linux上,大部分重要的操作还是要通过命令行的方式进行操作. 如何为ubuntu server 版本 安装图形界面 Ubunt ...

  2. 在本地电脑使用远程服务器的图形界面——包括 MATLAB、PyCharm 等各种软件

    在用本地电脑连接远程服务器的时候,大部分时候只能用命令行来操作.虽然可以 在本地电脑用 PyCharm 进行远程调试.在本地电脑远程使用服务器的 Jupyter Notebook.Ubuntu 和 W ...

  3. 了解一下 Linux 上用于的 SSH 图形界面工具

    如果你碰巧喜欢好的图形界面工具,你肯定很乐于了解一些 Linux 上优秀的 SSH 图形界面工具.让我们来看看这三个工具,看看它们中的一个(或多个)是否完全符合你的需求. 在你担任 Linux 管理员 ...

  4. no screens found! ubuntu进不了图形界面了

    no screens found! ubuntu进不了图形界面了 结果是没装显卡 startx error. reinstall xorg, x server doesn't work. driver ...

  5. 设置ubuntu 默认不启动图形界面

    设置ubuntu 默认不启动图形界面 一. 编辑文件/etc/X11/default-display-manager 如果值为/usr/sbin/gdm,则进入图形界面如果值为false,则进入控制台 ...

  6. Kali 远程登陆SSH

    一.配置SSH 编辑/etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,将NO修改为YES //可以用密码登陆 将PermitRootLogin ...

  7. Cetos 7 命令行登陆与图形界面登陆相互切换

    环境:vmware 虚拟机: 系统:Cetos 7 64位: 引言:有一台虚拟机,安装的时候选择的是最小化安装,是没有图形界面的,后来有需求,需要有个图形界面,所以就准备把这个升级下,下面是操作步骤: ...

  8. Linux系统 ssh图形界面远程

    远程Linux系统有图形界面 1.下载xming 并安装启动 2.通过putty登陆虚拟机 3.输入gnome-session

  9. ubuntu打不开图形界面,显示run in low_graphic mode

    我上次因为这个问题重装了ubuntu,结果没两天又有问题了,这次我看到了未重启前的提示,说我的硬盘空间剩0kb,所以我心有余悸的想办法留空间,十分担心会有上次的问题出现,为了验证我的想法,我重启了一下 ...

随机推荐

  1. Shiro第六篇【验证码、记住我】

    验证码 在登陆的时候,我们一般都设置有验证码,但是我们如果使用Shiro的话,那么Shiro默认的是使用FormAuthenticationFilter进行表单认证. 而我们的验证校验的功能应该加在F ...

  2. HTML超文本

    1.HTML链接 2.HTML表格 3.HTML图像 4.HTML列表 5.HTML块 6.HTML布局 7.HTML表单 1.HTML链接 (1)给文字及图片添加超链接 < html> ...

  3. oracle 数据库管理员

    一.数据库管理员每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责.那么一个数据库管理员的主要 ...

  4. 【JVM】Java中的JavaCore/HeapDump文件及其分析方法

    产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下. 有时致命问题发生后,Java应用不会死掉,还能继续运行: 但有时致命问题 ...

  5. CDH入门

    cloudera(CDH)官网介绍:安装包.离线包该如何下载.官方文档等介绍http://www.aboutyun.com/thread-8908-1-1.html(出处: about云开发) 进入C ...

  6. Ionic3学习笔记(五)动画之使用 animate.css

    本文为原创文章,转载请标明出处 目录 前言 animate.css 的使用 animate.scss 的使用 1. 前言 animate.css 是一款强大的.跨浏览器的预设CSS3动画库,内置了很多 ...

  7. 全方位解读及介绍windows网络安全及常见攻击方式

    本来我就是来逛逛论坛的,可是看到前面有位一样是干网络安全的同行,留下来过的痕迹,发了一篇相对不错的文章,我寻思咱既然来这一趟,也不能显得就比别人差啊.所以我也就写了这一片不算成熟小文章,望各位共勉之哈 ...

  8. EasyUI ComboTree无限层级异步加载示例

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EasuUIDemoTree.a ...

  9. 使用jquery-qrcode在页面上生成二维码,支持中文

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 分布式锁的实现(redis)

    1.单机锁 考虑在并发场景并且存在竞态的状况下,我们就要实现同步机制了,最简单的同步机制就是加锁. 加锁可以帮我们锁住资源,如内存中的变量,或者锁住临界区(线程中的一段代码),使得同一个时刻只有一个线 ...