背景
一同事在研究他的安全大业,需要在AWS服务器上部署他的秘密武器,秘密武器通过Docker来部署;在部署前可以通过跳板机的内外网ssh登录上这台服务器;部署后只能通过外网ssh登录这台服务器.......;症状就是这么个症状,怎么下药就得看医术了.....
排查心里路程
1、部署秘密武器之前,可以内外网;部署后,只能外网,看这么个症状就是网络防火墙问题,于是乎~~~
1)iptables -F
2)setenforce 0
3)在AWS上把此服务器的安全组入站0.0.0.0(这纯粹是为了测试,正式环境千万别~~~)
2、这ssh不通难道是ssh的配置文件修改了,因为改了端口,难道ssh的配置文件里有控制内外网是否可以登录的配置?于是乎~~~
vim /etc/ssh/sshd_config 一顿瞎改(这里就体现了对ssh的认识不足,对配置文件不熟悉,得学习)
3、这什么玩意儿,网络是可以的,安全组没问题,不知为什么脑袋里面想到了路由,route -n 先看看,哇~~噢,这么多条路由,看到这些路由的时候,其中有一条172.29.0.0(我们跳板机的网段跟这个很像),就隐隐约约觉得这里有问题(女人的直觉不只在判断男朋友是否在外面有狗,还爱不爱上;在这里直觉也还是挺准,哈哈);于是乎~~~
route -n route del -net 172.22.32.0 netmask 255.255.255.0 route del -net 172.23.32.0 netmask 255.255.255.0 ......
只要是与容器有关的路由全部干掉,然后再从跳板机去内网ssh登录,哇~~~哇~~~可以了耶,好激动好激动噢~~~~
4、确定了,就是那一条路由的问题,这个容器分配的网段与跳板机的网段冲突了,于是乎~~~~
route add -net 172.22.32.0 netmask 255.255.255.0 ......
把刚刚删了的路由除了那一条冲突的,又傻不拉几的加上,接下来就是解决这个问题的时候了
当时的解决办法
想了想,既然冲突了,那我肯定就是把这个容器的网段给改了,怎么改呢,用了一个及其愚蠢的办法,我把这个容器停掉删除,重新用docker-compose重启启动了一个,就重新分配了一个新的网段,就不冲突了。
根本解决办法
在启动容器之前就把整个docker的网络改为与我们自己的网段不冲突的,这样docker永远只分配我们给他设置的
操作步骤:修改docker.json,使得整个docker的网络网段都改掉,原来是172网段,现在我要改为192
1)vim /etc/docker/daemon.json(这里没有这个文件的话,自行创建)
{ "bip":"192.168.0.1/24" }
2)重启docker
systemctl restart docker
3)在重新看网段
注:在使用docker容器最初规划的时候就要想到这一点,要规划好使用什么样的网段;上面的这种办法得重启docker,重启容器的;
疑问
还没有其他更好的办法呢,在不停止容器不删除容器的前提下,修改网段?(待我研究好了,再来补充)
总结
1:对ssh的配置文件不熟悉(这个得找个时间系统的过一遍)
2:对网络这块熟悉,尤其是路由这些,说实在的,到现在还是说不出路由的具体作用,只可意会的那种,只知道没他不行(等这段时间把PMP考完了,开始看思科那几本书,不说考证,先把那几本书好好看看,加强网络)
3:对Docker网络模式不熟悉(接下来这段时间好好看Dokcer网络部分的官方文档)
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。
问题内容: 我有一个需要修改数据库表中列默认值的要求。该表已经是数据库中的现有表,并且当前该列的默认值为NULL。现在,如果将新的默认值添加到此列,如果我是正确的话,它将列的所有现有NULL更新为新的DEfault值。有没有一种方法可以不执行此操作,但仍在列上设置新的默认值。我的意思是我不想更新现有的NULL,并希望它们保留为NULL。 在这方面的任何帮助,不胜感激。谢谢 问题答案: 您对将会发生
这就是我得到的错误 我使用的是MySQL5.7版
默认情况下,Tomcat配置的默认端口是8080。这就是为什么所有已部署的Web应用程序都可以通过URL访问的原因:http://localhost:8080/yourapp。如果希望应该在80端口上运行,则需要将默认端口8080更改为80,这是HTTP连接器的默认端口。 要更改此端口,请打开并找到以下内容: 更改为以下内容: 修改后,您可以使用"http://localhost/"来访问您的应用
我有一个apikey“令牌”,它必须在每个请求中作为查询参数提供。我如何设置翻新,以便始终在请求中包含此查询参数? 我当前将内标识作为默认参数提供: 但是由于我知道每个请求都需要相同的令牌,所以在我创建的每个请求函数中必须提供它作为默认参数,这感觉是多余的。我如何设置reverfit来用默认的查询参数修饰每个传出的请求? 这是我如何构建reverfit2实例的: 我认为在调用.build()之前,
本文向大家介绍MySQL5.7修改默认root密码,包括了MySQL5.7修改默认root密码的使用技巧和注意事项,需要的朋友参考一下 MySQL5.7 开始,增加了很多安全性的更新,老版本的用户可能会有一些不习惯。 5.7.6 版本以后,首次安装并启动MySQL数据库时,会生成一个临时密码到日志文件。如下: 临时密码为:nWoo>o0rXtr4。 使用该密码登陆数据库,但是不能进行任何操作,提示
修改游戏基本设定 在已经调整了对话框的情况下,是否会觉得白底的对话框和黑底的姓名框,需要配上和原来不同的颜色和文字效果呢。 这时候就轮到Config.tjs上场了。 Config.tjs是吉里吉里/KAG的基本设定文件,包含了大量可以调整的细节。 不过Config.tjs所记录的只是一个默认设置,大部分功能也可以在后来的脚本里修改。 但对于游戏里随时都要用到的东西,例如说字体的默认颜色外观等等,直