-
虚拟机使用docker 外部机器无法访问端口问题
2020-02-29 10:35:02使用虚拟机启动docker镜像之后,外部宿主机无法访问指定端口服务 宿主机是a ,虚拟机是b 。虚拟机没有可视化界面,在b上启动docker服务后发现A不能访问 1,排查防火墙firewall-cmd --state 如果输出的是“not ...使用虚拟机启动docker镜像之后,外部宿主机无法访问指定端口服务
宿主机是a ,虚拟机是b 。虚拟机没有可视化界面,在b上启动docker服务后发现A不能访问
1,排查防火墙firewall-cmd --state
如果输出的是“not running”则FirewallD没有在运行,且所有的防护策略都没有启动,那么可以排除防火墙阻断连接的情况了。
如果输出的是“running”,表示当前FirewallD正在运行,则关闭防火墙
二、ip转发没有打开
执行 sysctl net.ipv4.ip_forward
显示net.ipv4.ip_forward=0则表示未打开。
cat /proc/sys/net/ipv4/ip_forward0
如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开,
要想打开IP转发功能,可以直接修改上述文件:echo 1 > /proc/sys/net/ipv4/ip_forward
把文件的内容由0修改为1。禁用IP转发则把1改为0。
上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改
/etc/sysctl.conf文件,修改下面一行的值:
net.ipv4.ip_forward = 1
修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:
sysctl -p /etc/sysctl.conf
进行了上面的配置后,IP转发功能就永久开启了。
-
辛星浅析rails server监听机器外部机器无法访问的问题
2015-11-10 17:45:22最近开始写ruby的教程,在虚拟机搭建了rails之后,发现在虚拟机中可以访问,但是外网无法访问,这里说一下具体的问题把,这是因为rails server的默认监听设置造成的。 我们可以使用rails server -h来查看它的默认...最近开始写ruby的教程,在虚拟机搭建了rails之后,发现在虚拟机中可以访问,但是外网无法访问,这里说一下具体的问题把,这是因为rails server的默认监听设置造成的。
我们可以使用rails server -h来查看它的默认监听设置,它默认监听的是'localhost‘这个主机名,导致我们无法访问,解决思路就是设置为绑定为一个ip地址,比如虚拟机的内网地址。
下面是我的测试范例(下面的GET是一次网页的访问请求):
root@newstar:~/blog# rails server -b 192.168.31.114
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://192.168.31.114:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-11-10 17:40:04] INFO WEBrick 1.3.1
[2015-11-10 17:40:04] INFO ruby 2.1.2 (2014-05-08) [i386-linux-gnu]
[2015-11-10 17:40:04] INFO WEBrick::HTTPServer#start: pid=13044 port=3000
Started GET "/" for 192.168.31.238 at 2015-11-10 17:40:07 +0800
Cannot render console from 192.168.31.238! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by Rails::WelcomeController#index as HTML
Rendered /var/lib/gems/2.1.0/gems/railties-4.2.4/lib/rails/templates/rails/welcome/index.html.erb (1.1ms)
Completed 200 OK in 17ms (Views: 6.5ms | ActiveRecord: 0.0ms) -
kong启动后外部主机无法访问8001管理端口
2020-01-27 22:16:18kong启动后,在虚拟机上访问localhost:8001可以访问,但是外部机器通过[虚拟机IP:8001]无法访问 通过docker方式安装的kong,在启动之后就不存在这个问题,外部主机通过IP端口可以轻松访问 问题排查分析 ubuntu...问题描述
- kong启动后,在虚拟机上访问localhost:8001可以访问,但是外部机器通过[虚拟机IP:8001]无法访问
- 通过docker方式安装的kong,在启动之后就不存在这个问题,外部主机通过IP端口可以轻松访问
问题排查分析
ubuntu虚拟机下情况
刚安装的kong,默认监听的地址是127.0.0.1:8001,127.0.0.1:8443,可以通过查看/usr/local/kong/nginx-kong.conf来查看,如图所示:
也可以通过查看虚拟机端口的监听状况来看,如图所示:
docker容器版本下情况
启动docker容器版本的kong,进入kong的容器内部,查看容器的端口监听状况,如图所示:
也可以通过查看虚拟机端口的监听状况来看,如图所示:
问题分析
问题的根本原因就是因为nginx监听的端口,kong默认将admin的管理端口只允许服务器本机访问,不允许给外部机器访问,这样很安全,但是一方面就会不方便。
仔细分析docker版本的kong启动命令:docker run -d --name kong \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong
就会发现容器在启动的时候设置了一个环境变量
KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
,可以参照官网说明解决方案
修改kong的配置,让kong启动后的8001端口不再是只监听127.0.0.1下的8001端口
直接修改kong的配置文件无法生效,除非修改kong的源码export KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
# vim /apps/kong/kong.conf 添加以下内容 admin_listen = 0.0.0.0:8001, 0.0.0.0:8444 ssl # 保存退出,重启kong kong start -c /apps/kong/kong.conf
这个时候查看服务器的端口监听状态已经改变了,监听端口状态:
也可以以debug方式的启动,直接查看启动的输出日志,如图所示:
kong start -c /apps/kong/kong.conf --vv
-
KVM虚拟机之网络配置
2019-10-11 13:40:08两种模式区别如下:1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。2)Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立...kvm虚拟机的网络配置有两种模式:桥接模式和NAT模式。
两种模式区别如下:
1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。
2)Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。一、NAT模式配置
nat模式配置比较简单,只需要在启动虚拟机后,更改其虚拟机的网卡配置文件,将“ONBOOT”配置项默认的“no”改为“yes”即可实现ping通外网,这里就不多写了,(它是借助KVM服务器的防火墙规则及IPtables规则来实现的,关闭KVM服务器的防火墙不会影响虚拟机ping外网,但是其iptables的默认配置必须存在,否则,虚拟机无法ping通外网)。
二、bridge模式配置
Bridge有两种配置方法,第一种比较繁琐,不推荐使用,在我之前的博文:Centos7部署KVM虚拟化平台详解中有写出来,可以进行参考,这里来写出来第二种方法,比较简单的一种方法。
[root@kvm ~]# systemctl stop NetworkManager #停止此服务 [root@kvm ~]# virsh iface-bridge ens33 br0 #执行此命令时,若提示以下信息,不用在意,因为其已经存在了 使用附加设备 br0 生成桥接 ens33 失败 已启动桥接接口 br0 [root@kvm ~]# ls /etc/sysconfig/network-scripts/ | grep br0 ifcfg-br0 #确定有此文件就行 [root@kvm ~]# virsh destroy test01 #关闭虚拟机 域 test01 被删除 [root@kvm ~]# virsh edit test01 #编辑虚拟机的配置文件,定位到interface <interface type='bridge'> #将此处改为bridge <mac address='52:54:00:a9:cc:5f'/> #删除Mac地址这行 <source bridge='br0'/> #将此处更改为这样 #保存退出即可
至此就配置完成了,运行虚拟机,更改其网卡配置文件,注意:虚拟机中配置的网关和kvm宿主机是一样的,它们现在处于同一个网段,虚拟机的网卡配置文件如下:
保存退出后,重启网络服务,即可实现虚拟机和外网互相通信了!!!自行测试吧!
———————— 本文至此结束,感谢阅读 ————————
-
Nginx首次安装成功无法通过外部浏览器访问问题解决方案
2020-07-05 11:42:02也启动了nginx,但是返回windows后,浏览器无法访问nginx。 (二)Linux中测试nginx是否能正常启动 这里的ip注意替换个人ip curl http://192.168.174.101/ 如果本地机器nginx能正常启动,显示如下: <!... -
ubuntu 虚拟机上的 django 服务,在外部Windows系统上无法访问
2018-04-09 22:55:00今天尝试着写了一个最简单的django 服务程序,使用虚拟机(Ubuntu16.02 LTS)上的浏览器访问程序没有问题。但是在物理机器上(win10 Home) 就出现错误 解决方法 在 django 项目的 setting.py 文件里,加入... -
虚拟机下red hat enterprise linux6 网络连接
2014-12-23 16:55:19only方式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连,仅将虚拟机和主机连上了,默认情况下,虚拟机只能到主机访问,可以与主机相互共享文件,但是虚拟机无法访问外部互联网;... -
VMware虚拟机下RedHat6 配置网络实现远程连接
2015-10-11 17:29:22only方式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连,仅将虚拟机和主机连上了,默认情况下,虚拟机只能到主机访问,可以与主机相互共享文件,但是虚拟机无法访问外部互联网;... -
KVM虚拟机网络闪断分析
2018-02-12 09:12:00VM出现问题时,表现出来的情况是外部监控系统无法访问,猜测可能是由于系统假死,OVS链路问题等等。但是在出现网络问题的时候,HV统一的表现为iowait较高。 排除过程 这是一个艰难的过程,由于无法重现现场,... -
[原] KVM虚拟机网络闪断分析
2016-05-12 11:21:00VM出现问题时,表现出来的情况是外部监控系统无法访问,猜测可能是由于系统假死,OVS链路问题等等。但是在出现网络问题的时候,HV统一的表现为iowait较高。 排除过程 这是一个艰难的过程,由于无法重现现场,导致... -
centos 7 在网桥方式下无法联网,无法ping通网关,但局域网内主机和虚拟可以正常访问
2015-02-12 08:09:27但是可以和局域网内所有物理机通信,局域网内的所有物理机也能访问centos7的虚拟机,如下图: ![通过putty可以远程ssh连接到虚拟机上,虚拟机也能ping通局域网的物理机,但无法ping网关和外网]... -
Docker端口映射
2019-09-25 14:34:17在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 docker指令: docker run -p ip:hostPort:containerPort redis 参数讲解: 使用-p参数会分配宿主机的... -
六、Docker 端口映射
2019-07-07 16:16:00在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 6.1 端口映射指令 # docker run -p ip:hostPort:containerPort tomcat 使用-p参数会分配宿主机的端口映射到... -
Docker学习笔记-Docker端口映射
2017-11-03 14:11:20在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 端口映射的指令是什么? docker指令:docker run -p ip:hostPort:containerPort redis 使用-p参数会分配... -
通过本地jedis连接远程服务器上的docker redis
2020-10-10 17:28:11反复测试后发现原因:端口映射原因:在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 1、docker启动redis的步骤: su root systemctl start docker docker run -... -
Docker学习笔记-Docker端口映射【转】
2018-12-06 17:48:05在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 端口映射的指令是什么? docker指令:docker run -p ip:hostPort:containerPort redis 使用-p参数... -
Docker 端口映射
2018-03-24 22:11:14在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。实现外界和Docker容器进行通讯,要么做link要么做Port映射端口映射:docker指令:docker run -p ip:hostPort:... -
Docker学习笔记之Docker端口映射
2021-01-10 08:08:52在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 端口映射的指令是什么? docker指令:docker run -p ip:hostPort:containerPort redis 使用-p参数会分配宿主机...
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
数据结构
-
잘났어 정말
-
【Flutter】StatefulWidget 组件.zip
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
中文分词词典UserDict.txt
-
Day52(泛型,在集合中使用泛型,自定义泛型结构:类与接口)
-
FFmpeg4.3系列之16:WebRTC之小白入门与视频聊天的实战
-
使用正则表达式验证注册页面(用户名,密码,确认密码,邮箱,手机号)
-
2021-03-01
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
MySQL 高可用工具 heartbeat 实战部署详解
-
bind方法的两个return
-
SAPCAR.zip
-
基于Vue+express+mongodb外卖点餐收银app系统设计
-
考过的题
-
ELF视频教程
-
Androidesk-release-androidesk.zip
-
LogisticRegressionModel二分类概率问题
-
TCSVT2020:VVC中扩展TSM和快速MTS选择