2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器

文章目录

            • 1. 主机设备是Windows 11系统
            • 2. 安装vmware虚拟机
            • 3. 创建ubuntu虚拟机(据说CentOS 7 明年就不维护了,就不用这个版本的linux了)
            • 4. 安装nginx服务:默认端口80
            • 5. 安装ssh服务:默认端口22
            • 6. 设置主机 -> ubuntu的端口映射
            • 7. 设置路由器 -> 主机的端口映射
            • 8. 完成配置

中国移动公网IP申请过程

1. 主机设备是Windows 11系统
2. 安装vmware虚拟机
3. 创建ubuntu虚拟机(据说CentOS 7 明年就不维护了,就不用这个版本的linux了)
1. 注意选择默认的NAT模式
4. 安装nginx服务:默认端口80
1. 黑马程序员Nginx教程,Java进阶从0到1学会Nginx分布式框架_哔哩哔哩_bilibili1. nginx news 官网2. nginx: download 版本分类3. Index of /download/ (nginx.org) 所有版本4. nginx documentation 文档
2. 安装nginx (视频教程里是CentOS 7的安装方式,这里是Ubuntu的安装)1. 官网提供的安装方式: [nginx: Linux packages](https://nginx.org/en/linux_packages.html#Ubuntu),或者按下面步骤安装2. 安装nginx依赖库1. sudo apt install gcc  安装gcc编译器2. gcc —version3. sudo apt-get install libpcre3 libpcre3-dev 安装pcre,nginx在编译过程中需要使用的库,因为Nginx的Rewrite模块和http核心模块都会使用PCRE正则表达式语法4. sudo apt-get install zlib1g-dev 安装zlib 开发, 在Nginx的各个模块中需要使用gzip压缩5. sudo apt-get install openssl libssl-dev  安装openssl,用于安全通信的包6. apt list --installed | grep program_name 查询是否安装成功3. 下载&编译&安装Nginx1. mkdir -p nginx/core2. cd nginx/core3. wget https://nginx.org/download/nginx-1.24.0.tar.gz4. tar -xzf nginx-1.24.0.tar.gz5. cd nginx-1.24.0/6. ./configure 执行7. sudo apt install make8. sudo make9. sudo make install4. 启动&停止nginx服务1. cd /usr/local/nginx/sbin/2. sudo ./nginx 启动服务3. 如果安装了防火墙,需要关闭,然后通过localhost访问nginx欢迎页。安装成功。4. sudo ./nginx -s quit 停止服务 5. 脚本启动&停止nginx1. cd ~2. touch start-nginx.sh1. #!/bin/bash2. cd /usr/local/nginx/sbin3. echo xxxxxxxx | sudo -S ./nginx3. touch quit-nginx.sh1. #!/bin/bash2. cd /usr/local/nginx/sbin3. echo xxxxxxxx | sudo -S ./nginx -s quit4. sh ./start-nginx.sh 启动服务5. sh ./quit-nginx.sh 停止服务
5. 安装ssh服务:默认端口22
1. Linux (Ubuntu) 如何开启SSH远程登录_哔哩哔哩_bilibili1. 安装openssh server1. sudo apt update2. sudo apt upgrade3. sudo apt install openssh-server 2. 启动ssh1. sudo systemctl enable ssh2. sudo systemctl start ssh3. sudo systemctl status ssh 3. 配置防火墙1. sudo ufw allow ssh2. sudo ufw disable (应该等于没有配置)3. sudo ufw status4. 脚本启动ssh1. touch start-openssh.sh1. #!/bin/bash2. echo xxxxxxxxx | sudo -S systemctl enable ssh3. echo xxxxxxxxx | sudo -S systemctl start ssh4. echo xxxxxxxxx | sudo -S systemctl status ssh2. sh ./start-openssh.sh 启动ssh5. ​通过主机终端 ssh 虚拟机系统用户名@虚拟机系统的ip 访问虚拟机系统终端
6. 设置主机 -> ubuntu的端口映射
1. 查询你的ubuntu系统的ip地址,通过ip addr查询
2. vmware虚拟机软件启动 -> 编辑 -> 虚拟网络编辑器(确保配置的时候,ubuntu系统是关闭的),点击更改设置授权设置
3. 配置端口映射1. 虚拟机ip为你的ubuntu的ip地址2. 端口映射:主机设备的端口:8822 映射到 ubuntu虚拟机的端口:22 (ssh服务的端口默认是22)3. 主机访问虚拟机系统终端1. ssh 虚拟机系统用户名@主机ip -p 8822 等同于 ssh 虚拟机系统用户名@虚拟机ip:222. 映射的端口需要用 -p 指定4. 同样可以指定其他端口的映射1.  远程桌面的默认端口为33892. nginx服务器的默认端口为803. ssh服务的默认端口为225. 确认完成配置,打开ubuntu系统,启动服务,在主机端访问验证。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7. 设置路由器 -> 主机的端口映射
1. 浏览器输入 192.168.3.1 访问路由器管理页
2. 进入NAT服务,配置端口映射
3. 选择服务器设备,设置对应的内部端口和外部端口
4. 关闭主机设备防火墙
5. 用外网设备,通过公网ip:外部端口来访问对应设备的内部端口的服务,如果内部端口是映射的虚拟机系统的内部端口,则直接访问到虚拟机系统服务

在这里插入图片描述
在这里插入图片描述

8. 完成配置
1. 通过外网可以访问主机桌面,虚拟机系统桌面, ssh服务器,nginx服务
2. 访问主机Windows系统桌面登录账户时,确保使用正确的账户密码(通过邮箱注册的账号访问login.live.com修改密码)
3. 因为你的这台设备可能要长期运行了,所以为了防止屏幕关闭导致系统睡眠,还有进行控制面板->电源管理,保证自动息屏或手动息屏时,系统正常运行。
4. 注意网络安全
5. 谁能告诉我,文章里的图片怎么缩小。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Amis Low Code 结合FastAPI进行前端框架开发】

官方文档 封装思想 直接复制官网json数据即可开发每个json中的接口由fastapi 转发(透传)使其开发模式与前端思维一致 基础组件 from amis import Page, Service, App from pydantic import BaseModel, Field from fastapi import FastAPI, Request, …

vue:this.reload()跟this.$router.replace的区别

this.reload() 页面是否会执行 created, 它跟 this.$router.replace的区别 都是页面初始化, url地址中没有rowId,reload可以使用,最终也是对路由进行刷新, 一个祖先组件通过设置provide/inject向其所有子孙后代注入一个…

c++学习之智能指针

前言:在此之前我们已经学习到了异常的使用,虽然异常在大部分情况都还可以,但也存在太多缺陷,对于异常的问题,入内存泄漏,在复杂的场景下使用起来也是非常麻烦。为了更好的解决这些问题,c11中引入…

Vue中比较两个JSON对象的差异

要在Vue.js中实现JSON数据的对比差异功能,你可以使用一些库来简化任务,比如diff-match-patch。以下是一个简单的例子,演示如何使用deep-diff库在Vue.js中比较两个JSON对象的差异: 首先,确保你的项目中已经安装了diff-m…

C语言—每日选择题—Day45

第一题 1. 以下选项中,对基本类型相同的指针变量不能进行运算的运算符是() A: B:- C: D: 答案及解析 A A:错误,指针不可以相加,因为指针相加可能发生越界&…

使用 Vue 3 框架编写的简单日历组件

这段代码是一个使用 Vue 3 框架编写的简单日历组件。下面是代码的详细解析: 模板部分(Template): 定义了一个名为 "calendar" 的 div,它包含了一个头部分(header)和三个主要部分&…

【华为数据之道学习笔记】4-2信息架构原则:建立企业层面的共同行为准则

信息架构承载了企业如何管理数据资产的方法,需要从整个企业 层面制订统一的原则,这些原则不仅是对数据专业人员的要求,也是对业务的要求,因为业务才是真正的数据Owner。所以,公司所有业务部门都应该共同遵从信息架构原…

Redis安装教程

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

用Java版本爬虫-WebMagic

我长期关注和实践各种网页数据爬取技术。今天,我想分享我的经验,特别是使用 WebMagic 框架来爬取淘宝网的数据。WebMagic 是一个灵活、强大的Java爬虫框架,适合于数据挖掘和网页内容分析。 WebMagic 简介 WebMagic 是一个简单而强大的 Java…

【clickhouse】ck远程访问另一个ck

代码实现 CREATE TABLE tmp.tbsas remote( host, database_name, table_name, user, password );就相当于从ck1直接请求ck2 参考文档 https://github.com/ClickHouse/ClickHouse/issues/15295 https://clickhouse.com/docs/zh/sql-reference/table-functions/remote

FFmpeg之AVFilterPad

AVFilterPad起一个输入和输出接口的作用 结构体 /*** A filter pad used for either input or output.*/ struct AVFilterPad {/*** Pad name. The name is unique among inputs and among outputs, but an* input may have the same name as an output. This may be NULL if …

go context.todo生成默认空的上下文

在 Go 语言的标准库中,context.TODO() 是一个函数,用于返回一个空的 Context 对象。TODO 是 "to do" 的缩写,表示该上下文对象被保留作为将来可能使用的占位符。 Context 是 Go 语言中用于传递请求的上下文环境的一种机制。它可以用…

LeetCode(58)随机链表的复制【链表】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 随机链表的复制 1.题目 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节…

kafka常见问题处理

1. 如何防⽌消息丢失 在生产者层面,我们有个ack参数确认机制 设置成-1,也就是副本全部同步了leader才发送ack,这样确保leader和副本挂掉只剩一个还能 保证消息不丢失 消费者: 把⾃动提交改成⼿动提交 2. 如何防⽌重复消费 在…

Node.js中的EventEmitter类介绍

1.EventEmitter类说明 EventEmitter 是 Node.js 中的一个核心模块,它提供了一种实现事件驱动编程的机制。它是一个基于观察者模式的类,用于在应用程序中处理事件和触发事件。 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js…

TCP/UDP 的区别及优缺点

1.TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过建立连接、数据确认(编段号和确认号)和数据重传等机制,保证了数据的可靠性…

​secrets --- 生成管理密码的安全随机数​

3.6 新版功能. 源代码: Lib/secrets.py secrets 模块用于生成高度加密的随机数,适于管理密码、账户验证、安全凭据及机密数据。 最好用 secrets 替代 random 模块的默认伪随机数生成器,该生成器适用于建模和模拟,不宜用于安全与加密。 参见…

Orange Comet利用Sui Kiosk进行游戏道具和知识产权保护

Orange Comet与AMC合作开发基于《行尸走肉》系列的NFT和游戏,首要关注的问题就是保护AMC的知识产权。利用Sui的Kiosk原语不仅让Orange Comet向AMC保证其资产安全,而且为即将推出的《行尸走肉大陆》游戏打开了无限的可能性。 Kiosk是Sui上的一个原语&…

记录一次chatGPT人机协同实战辅助科研——根据词库自动进行情感分析

有一个Excel中的一列,读取文本判断文本包含积极情感词.txt和消极情感词.txt的个数,分别生成两列统计数据 请将 ‘your_file.xlsx’ 替换为你的Excel文件名,Your Text Column’替换为包含文本的列名。 这个程序首先读取了积极和消极情感词&…

mac 环境下 goframe安装GF开发工具 gf-cli(安装包方式安装)

mac 环境下 goframe安装GF开发工具 gf-cli(安装包方式安装) 安装包网址 链接: link 终端输入命令进行安装 ./gf_darwin_amd64 但是产生如下报错,无法安装 使用一下命令给安装权限 chmod 0777 gf_darwin_amd64 && ./gf_darwin_a…