端口映射工具 redir/socat/xinetd

NAT网关,通常用iptables实现,但性能很差不适合用于生产环境。可通过硬件设备或小米开源dsnat完成。     端口映射的需求也常有,通过也是用iptables实现。可是iptables太重,性能是个大问题,且每次更新都需要重启。

    此时,我们需要一个工具来实现端口映射。如果纯粹是HTTP协议,那么直接用Nginx即可。像MySQL、MongoDB之类则不适用。Google一翻,答案知晓:redirsocat。 

    其中 redir 只支持TCP协议,但使用非常简单。比如将外网的2669端口映射对内网1台MySQL服务器,一键搞定:

redir --lport=2669 --caddr=10.58.66.32 --cport=3306

  还有一点高级功能就去自行查阅帮助吧。  

  socat则更强大,支持ipv4、ipv6、tcp、udp、unix-socks、socket等等了。出于“The simpler the better”的观念,恭喜redir入围!

  如果映射量比较大,需要易维护、搞攻击,就必须想到xinted了。配置 /etc/xinetd.d/mysql-portmap 如下:

service mysql-portmap {
    id = 1
    disable = no
    type = UNLISTED
    socket_type = stream
    protocol = tcp
    wait = no
    redirect = 10.33.66.88 3306
    bind = 183.68.36.138
    port = 2669
    user = nobody
    group = nobody
    flags = NODELAY KEEPALIVE NOLIBWRAP IPv4 
    log_type = FILE /data/log/xinetd/tcp-portmap.log
    cps = 100 30
}

   每个映射可以有独立配置文件来管理,修改只需要reload即可!当受到攻击时,在系统日志 /var/log/messages 中会看到:

xinetd[26269]: Starting reconfiguration xinetd[26269]: Swapping defaults
xinetd[26269]: readjusting service rsync xinetd[26269]: service mysql-portmap deactivated
xinetd[26269]: mysql-portmap: svc_release with 0 count xinetd[26269]: Reconfigured: new=1 old=1 dropped=1 (services)
xinetd[26269]: Deactivating service mysql-portmap due to excessive incoming connections.  Restarting in 10 seconds. xinetd[26269]: Activating service mysql-portmap

   用xinetd来管理端口映射简单太完美了!

在Linux系统中,有多种方法可以进行端口转发。其中一种方法是使用SSH进行端口转发。SSH提供了一个功能强大的端口转发功能,可以通过SSH连接来转发其他TCP端口的网络数据,并提供加密和解密服务。 一种常见的SSH端口转发方法是本地端口转发。您可以使用以下命令将本地端口转发到远程主机的特定端口: ``` ssh -fgN -L <本地端口>:<目标主机>:<目标端口> <远程主机> ``` 例如,要将本地端口2222转发到本地主机的22端口(即本地SSH服务),可以使用以下命令: ``` ssh -fgN -L 2222:localhost:22 localhost ``` 另一种常见的SSH端口转发方法是远程端口转发。您可以使用以下命令将远程端口转发到本地主机的特定端口: ``` ssh -fgN -R <远程端口>:<目标主机>:<目标端口> <远程主机> ``` 例如,要将远程端口2222转发到主机host1的22端口,可以使用以下命令: ``` ssh -fgN -R 2222:host1:22 localhost ``` 此外,还有一种动态转发的方法,可以创建一个动态的本地Socks代理服务器。您可以使用以下命令进行动态转发: ``` ssh -fgN -D <本地Socks代理端口> <用户名@远程主机> ``` 例如,要创建一个动态的本地Socks代理服务器,可以使用以下命令: ``` ssh -fgN -D 12345 root@host1 ``` 除了使用SSH进行端口转发外,还可以使用iptables命令进行端口转发。iptables是Linux系统中的一个强大的防火墙工具,同时也可以用于端口转发。 综上所述,Linux系统中有多种方法可以进行端口转发,包括使用SSH进行本地端口转发、远程端口转发和动态转发,以及使用iptables进行端口转发。具体使用哪种方法取决于您的需求和环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux 下最简单快捷的端口转发软件 redir 简介](https://blog.csdn.net/learndiary/article/details/122685551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux端口转发的几种常用方法](https://blog.csdn.net/Jailman/article/details/125524313)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值