• 使用VirtualBox实现端口转发,以SSH与Django为例


    先来认识几个概念
    (1)IP地址:又称为互联网协议地址,是计算机的物理地址,相当于计算机的编号,是32位的二进制数,通常被分割成4个8位的二进制数;
    (2)端口:指设备与外界通讯的接口,一台计算机的端口数为65536个,按类型可以分为周知端口、注册端口和动态端口三种;
    (3)socket:套接字,是一个基于TCP/UDP的接口。网络上的两个程序通过一个双向的通信连接实现数据的交换,连接的一端称为socket服务端,另一端称为socket客户端;
    (4)socket服务端:接收客户端数据,需要绑定IP与端口,其中IP为允许连接进来的IP地址,设置为"0.0.0.0"表示允许任意IP访问,端口为socket服务端的端口,客户端连接的端口需要与该端口相一致才能访问;
    socket客户端:向服务端发送数据,需要连接IP与端口,其中IP为客户端IP地址,端口必须与socket服务端绑定的端口一致,否则无法连接,此外客户端的端口是注册端口,由系统随机分配。

    客户端想要与服务端连接,则先要知道服务端的端口是多少,才能建立连接。虚拟机相当于socket服务端,本机相当于socket客户端,通过设置端口转发实现本机与虚拟机的交互,就要先知道虚拟机的端口,这些端口有的是周知端口,如SSH的端口为22,有的是注册端口,这些端口需要先设置。下面分别以ssh和虚拟机上的Django为例,分别使用VirtualBox实现端口转发
    (1)使用VirtualBox实现SSH端口转发
    这里我把主机端口设为"1234",主机端口只要没使用过,可以设置1024-49151中的任意一个数。
    步骤:点击"设置"—>选择"网络"—>"网卡1"—>"高级"—>"端口转发"—>点击"+"新建规则—>名称:SSH,协议:TCP,主机端口:1234,子系统端口:22

    (2)使用VirtualBox实现Django端口转发
    在虚拟机中安装Django,此时Django相当于socket服务端,浏览器相当于socket客户端。创建项目后,由于Django的端口是注册端口,因此需要先设置端口开启服务,在项目目录下执行命令
    ·```python
    python manage.py runserver 0.0.0.0:6969

    注意:"0.0.0.0"表示任意IP地址都可以访问,"6969"表示虚拟机端口,对应端口转发规则里的子系统端口。
    接着设置Django端口转发,这里把主机端口设为"8000"
    步骤:点击"设置"—>选择"网络"—>"网卡1"—>"高级"—>"端口转发"—>点击"+"新建规则—>名称:Django,协议:TCP,主机端口:8000,子系统端口:6969
    ![](https://img2018.cnblogs.com/blog/1605690/201902/1605690-20190218184423487-1337011331.png)
    
    设置好Django端口转发后,在本地打开浏览器,输入IP地址和服务器端口:127.0.0.1:8000,就可以访问设置的Django服务器
  • 相关阅读:
    17.10.30
    17.10.28&29
    PDO和Mysqli的区别
    ajax--->请求异常 jQuery提示parsererror错误解决办法
    ajax--->http头信息的content-type是application/x-www-form-urlencoded或application/json区别
    php--->把json传来的stdClass Object类型转array
    mysql--->mysql查看数据库操作记录
    js解析json时报:Unexpected token s in JSON at position 0
    code review工具之codebrag安装使用
    linux-->yii2报yiidbException错
  • 原文地址:https://www.cnblogs.com/rongzhen/p/10397161.html
Copyright © 2020-2023  润新知