努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • 安全记录
  • 分布式存储
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • 日志服务ELK(EFK)
  • 虚拟化
  • istio
  • 日志服务Graylog
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
  • openguassdb
  • polardb
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • 安全记录
  • 分布式存储
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • 日志服务ELK(EFK)
  • 虚拟化
  • istio
  • 日志服务Graylog
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
  • openguassdb
  • polardb
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • 运维基础

    • nginx 安装
    • nginx-conf常用示例
    • rsync 服务pull与push
    • linux时间同步
    • 系统参数优化
    • ruby版本升级
    • fpm定制rpm
    • php7_X安装
    • iptables规则
    • tcpdump抓包
    • 公司部署Pritunl-VPN
    • 需求shell脚本记录
    • openldap安装配置
    • Ldap集成常用开源服务示例图
    • ansible基础
    • ansible进阶playbook与Roles
    • centos安装python3
    • Firewalld防火墙
    • Linux配置jdk
    • ubuntu安装ftp
    • windows安装openssh
    • centos7安装系统检测不到网卡
    • docker运行一个bind9和常用的网络命令
    • nginx禁用真实IP
    • nginx之resolver解析
    • ubuntu2204编译安装php7.4.33
    • socat端口转发
      • socat端口转发
        • 运行kafka服务
        • 配置端口转发
  • 监控

  • 日志系统

  • 安全记录

  • 分布式存储

//
  • 运维
  • 运维基础
yangfk
2026-01-26

socat端口转发

//

# socat端口转发

在部署服务的时候,可能由于某个中间件服务版本低,而存在漏洞,又不太好升级的情况下,需要通过配置防火墙来阻止流量请求。
当docker部署的服务,做的端口映射会绕过firewald防火墙,导致端口漏洞泄露,这个时候,可以结合 socat 来做防火墙规则处理
容器内监听IP:127.0.0.1, 再由socat 做0.0.0.0 端口转发,通过firewalld做IP,端口限制
  • 安装工具

Ubuntu: apt install socat -y

**centos: ** yum install socat -y

# 运行kafka服务

  • 创建一个docker运行的kafka
cat >docker-compose.yaml<<'EOF'
version: '3'
services:
  dm-kafka:
    container_name: dm-kafka
    restart: always
    image: bitnami/kafka:3.6.1
    environment:
      ALLOW_PLAINTEXT_LISTENER: 'yes'
      KAFKA_CFG_LOG_RETENTION_MS: 60000
      KAFKA_CFG_MAX_REQUEST_SIZE: 524288000
      KAFKA_CFG_MESSAGE_MAX_BYTES: 524288000
      KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 524288000
      KAFKA_CFG_FETCH_MESSAGE_MAX_BYTES: 524288000
      KAFKA_CFG_PARTITION_FETCH_BYTES: 524288000
      KAFKA_CFG_NODE_ID: 0
      KAFKA_CFG_PROCESS_ROLES: controller,broker
      KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
      KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://192.168.5.154:9092
      KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@127.0.0.1:9093
      KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - "./kafka/data:/bitnami/kafka/data/"
    ports:
      - "127.0.0.1:9091:9092"
    network_mode: bridge
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

-启动服务:

docker-compose -f docker-compose.yaml up -d

# 配置端口转发

监听端口:0.0.0.0:9092 ,转发本地端口:127.0.0.1:9091

cat >/usr/lib/systemd/system/socat-9092.service<<'EOF'
[Unit]
Description=TCP forward 0.0.0.0:9092
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
# 重启策略:总是重启,10 秒间隔
Restart=always
RestartSec=10
# 运行用户与组
User=nobody
Group=nogroup
# 限制打开文件数
LimitNOFILE=65536

# 关键行:socat 转发
# -d -d  打印详细日志到 stderr(journald 捕获)
# TCP-LISTEN 重用端口、fork 多并发
ExecStart=/usr/bin/socat -d -d \
    TCP-LISTEN:9092,reuseaddr,fork \
    TCP:127.0.0.1:9091

# 优雅关闭
KillMode=mixed
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  • 启动服务端口:9092
systemctl daemon-reload
systemctl start socat-9092.service
systemctl enable socat-9092.service
1
2
3
  • 配置firewalld富规则
firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.5.154 port port="9092" protocol="tcp" accept'
1
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2026/01/27, 11:58:45
ubuntu2204编译安装php7.4.33
zabbix 部署

← ubuntu2204编译安装php7.4.33 zabbix 部署→

最近更新
01
vastbase配置postgis
01-21
02
docker运行异常
12-22
03
容器运行polardb-pg配置主从
11-27
更多文章>
Theme by Vdoing | Copyright © 2019-2026 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//