• [linux]主机访问虚拟机web服务(CentOS)


    目的为了实现主机和虚拟机的通信,访问虚拟机中架设的web服务。
    按理说通过虚拟机ip + web服务端口,即可在浏览器访问虚拟机的web服务。
    但是由于CentOS的防火墙问题,对应web端口无法访问。通过配置CentOS防火墙来解决。

    CentOS 7使用firewalld来管理防火墙,firewalld的配置不了解,切换为比较通用的iptables配置。
    关闭firewalld并启用iptables服务:
      systemctl mask firewalld
      systemctl stop firewalld
      yum install iptables-services
      systemctl enable iptables
      systemctl start iptables

    通过systemctl status firewalld.service可以查看firewalld处于dead状态。此时防火墙由iptables接管。

    iptables的配置详情参考这里:
    http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
      • 查看iptables端口列表:
      iptables -L -n
      • iptables开放80端口:
      iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    之前碰到过在命令行添加端口开放,但查看iptables -L -n却发现没有生效的问题。于是直接修改配置文件/etc/sysconfig/iptables。文件中有开放ssh 22端口的配置,复制相关命令行,将端口部分变更为80.
    修改之后重启iptables: service iptables restart

    通过主机telnet虚拟机,验证端口是否开放。
    我的vmware虚拟机网络配置为NAT。
    首先查看虚拟机分配到的ip地址:ifconfig

    此处虚拟机的地址为192.168.151.131.
    首先确认主机ping虚拟机能ping通: ping 192.168.151.131.
    如果ping不通,说明地址或网络有问题。导致不通的原因很多,请自行搜索解决。

    然后在主机telnet 虚拟机端口: telnet 192.168.151.131 80
    如果有提示telnet命令不存在的情况,表示主机没有开启telnet服务。
    在控制面板->程序->启用或关闭Window功能,找到telnet客户端,勾选之后提示重启生效。保存相关环境,然后重启。
    现在win10的控制面板入口十分隐蔽,我一般通过资源管理器左侧,[此电脑]图标右键,选择属性,在弹出的窗口中找到控制面板。

    如果telnet成功,则cmd会进入一个空白的界面,按ESC键退出会显示一些错误信息。表示虚拟主机是可连接的,配置成功。通过浏览器访问ip+端口,应该可以进入web服务。

    如果telnet不成功,原因依然很多。
    有一种说法是selinux本身也有防火墙, 通过setenforce 0命令关闭。个人实测selinux的开启/关闭并不影响端口接通。
    另一种说法是主机防火墙问题,可以自行开关主机防火墙确认。在我的案例中,问题也与主机防火墙无关。
    我的问题在于没有启动监听80端口的web服务。
    这里我的疑问是,如果端口没有服务监听,为什么是拒绝连接,而不是操作系统返回信息提示端口背后无服务?

    我配置的是nginx+uwsgi的Flask web,通过nginx启动服务。
    如果配置正确,通过netstat -ntpl可以查看到端口80和nginx服务的相关信息。
    再次在主机telnet 虚拟机地址端口, 进入空白终端,esc退出有HTTP 400提示。表示端口服务OK。
    尽管我并没有使用uwsgi app.py来运行虚拟机的app, web服务依然OK。所以推测在启动nginx服务后,nginx已经通过配置,调用uwsgi启动了对应的app服务,无需手动开启。
    通过浏览器访问ip+端口,返回我配置好的Hello World。大功告成。

  • 相关阅读:
    php 3des加密解密
    mysql 用命令导入导出
    ubuntu16.04对硬盘进行分区格式化并设置开机自动挂载
    nginx
    iostat (转https://www.cnblogs.com/ftl1012/p/iostat.html)
    zabbix
    zabbix
    mac 录屏
    利用elasticsearch-dump实现es索引数据迁移附脚本
    rdbtool
  • 原文地址:https://www.cnblogs.com/oDoraemon/p/9522562.html
Copyright © 2020-2023  润新知