socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)

1. 问题描述
服务器(例如Ubuntu16.04)的子网ip比如192.168.1.113,外网ip比如218.17*.***.**. 如何设置来使得任何外网(即与ip 218.17.***.***不同)的clients(比如win10)能够对服务器进行访问操作(比如登录,操作文件,执行代码)。

第一步:Ubuntu16.04服务器上安装sshd((SSH-SERVER))

步骤如下:
首先,安装sshd(openssh-server)

sudo apt-get install openssh-server

然后,验证安装是否成功。如果出现sshd,说明安装成功;否则重新安装sshd

ps -s | grep ssh

socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)_第1张图片

第二步: 登录服务器所在的路由器,将路由器的端口进行端口绑定

步骤如下:
首先,登录路由器,连接上ubuntu服务器所在的路由器,并在浏览器中输入如下,(默认用户名,密码都是admin)

192.168.1.1

然后,将ubuntu16.04服务器的内网ip(192.168.***.***)设置为静态ip

socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)_第2张图片

最后,进行路由器的端口绑定设置,其中,内部端口(针对服务器而言的内部开放端口)可以为22,外部端口(针对路由器而言的外部访问端口)可以为9000

socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)_第3张图片

第三步: Ubuntu16.04关闭防火墙,打开内部端口

首先,关闭ubuntu服务器的防火墙

sudo service ufw stop

然后,打开端口,即上面路由器设置的22号内部端口

netstat -nlp|grep 22

至此,ubuntu16.04服务器的远程访问控制端已经设置完毕。

第四步: 配置置远程客户端,比如在win10上安装putty

步骤如下:
首先,在win10客户端打开putty,如下

socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)_第4张图片

然后,客户端(win10之putty客户端)成功地通过外网的ip地址,输入远程ubuntu服务器的用户名和密码,对远程ubuntu服务器(ubuntu 16.04)进行远程登录!如下

socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)_第5张图片

关键问题回顾
分清那些内网ip(比如192.168.***.**)和外网ip (218.17.***.***)的区别,外网进行远程访问(用外网ip)是由一些难度的,内网之间进行远程访问(用内网ip)则比较简单,比如用xrdp http://jingyan.baidu.com/article/8ebacdf0cdc64949f75cd555.html

参考

  1. 路由器端口映射http://jingyan.baidu.com/article/1709ad80d599d24634c4f0c2.html
  2. SSHD
    http://jingyan.baidu.com/article/00a07f38a5c05482d128dc5f.html
  3. 路由器和本机开放端口扫描工具
    http://download.csdn.net/detail/canhui_wang/9884015
  4. 路由器和本机开放端口文章
    http://blog.csdn.net/Canhui_WANG/article/details/73911720

推荐
因为网站 http://ip.gangsir.cn/ 的端口检测服务有问题即:明明端口是打开状态的,但却显示端口关闭——所以这里写了一篇关于路由器以及本机的开放端口扫描的文章http://blog.csdn.net/Canhui_WANG/article/details/73911720

你可能感兴趣的:(计算机网络)