代码改变世界

tpot从elastic search拉攻击数据之二 配置端口映射

2018-07-30 11:51  ZealouSnesS  阅读(909)  评论(0编辑  收藏  举报

虽然知道了本地的数据接口位置,但是我们需要的是从远程拉取数据,所以我们需要更改es的ip端口为0.0.0.0:xxxx。

直接修改下图的elasticsearch.yml配置文件,结果发现无效。

 这是因为es部署在docker中,直接修改配置文件没有用,需要进行docker端口映射。

使用docker ps命令查看目前的docker端口映射情况:

 

可以发现elastic search进程从docker中的9200端口映射到了主机的127.0.0.1:64298端口

查看一下:

确实是这样的。

 

接下来修改端口映射

总结了一下网上的方法,修改端口映射主要有四种方法。

1、最常用的:启动doker镜像,运行docker run命令时使用-p指定要映射到的ip和端口

$ docker run -d -p 8080:80 nginx
23e725098712d061a1382f33d6fe54da23ae37597a62f8debdd3731b5f9cc4b9
$ 
$ docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
23e725098712    nginx        "nginx -g 'daemon ..."  8 seconds ago    Up 6 seconds    0.0.0.0:8080->80/tcp  frosty_ptolemy

这种方法我猜是可行的,但是关键是tpot中的docker服务是tpot自动启动起来的,如果想要在tpot启动doker时加上这行参数,我就要去找doker run这行命令在哪。

试一下:

想到运行时的命令为 systemctl start tpot.service

于是搜索了一下tpot.service文件的位置,找到了无数个,哪个是启动脚本?

发现是:/etc/systemd/system/下的tpot.service,参考https://www.echoteen.com/centos7-systemctl.html

打开这个文件看了一眼,.service文件的读法也参考上面那篇,简单来说就是主要看[service]部分:

 

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

 

看了一下这个文件,word天,调用了好多脚本,没法找,这个方法暂时放弃

 

2、修改hostconfig.json 和 config.v2.json 文件

https://blog.csdn.net/u011241780/article/details/79457876

这种方法试了一下,不适合tpot这种情况,因为一旦关闭doker服务或者关闭tpot服务,这两个文件所在的临时文件夹就消失了

 

3、使用iptables命令转发端口

试一下,输入命令:

将docker中的9200端口映射到主机的8000端口

外网访问一下:

成功!

 查看已设置的iptables规则:-L显示规则表 -t指定表名

iptables规则查看与删除:https://blog.csdn.net/chengxuyuanyonghu/article/details/51897666

 

4、制作一个镜像,然后用docker run -p命令启动镜像

 

 

参考:https://www.jb51.net/article/127630.htm