当前位置: 首页 > news >正文

使用firewall-cmd配置SIP端口转发,实现双网卡互通,内外网方式

使用firewall-cmd配置SIP端口转发,实现双网卡,内外网方式

脚本内容

这里以内网IP: 192.168.2.88

这里以外网IP: 10.3.3.3

以下是一个用于启用和停用端口转发的Shell脚本:

#!/bin/bash

# 配置变量
ZONE="public"
TARGET_IP="192.168.2.88"
PORT="5060"
PROTO_TCP="tcp"
PROTO_UDP="udp"
RANGE_PORT_START="16384"
RANGE_PORT_END="32768"

function enable_forwarding() {
    # 启用IP伪装
    firewall-cmd --permanent --zone=$ZONE --add-masquerade
    # 添加5060 TCP端口转发规则
    firewall-cmd --permanent --zone=$ZONE --add-forward-port=port=$PORT:proto=$PROTO_TCP:toaddr=$TARGET_IP
    # 添加5060 UDP端口转发规则
    firewall-cmd --permanent --zone=$ZONE --add-forward-port=port=$PORT:proto=$PROTO_UDP:toaddr=$TARGET_IP
    # 添加16384-32768 UDP端口范围转发规则
    firewall-cmd --permanent --zone=$ZONE --add-rich-rule="rule family='ipv4' forward-port port='$RANGE_PORT_START-$RANGE_PORT_END' protocol='udp' to-addr='$TARGET_IP'"
    # 重新加载防火墙配置
    firewall-cmd --reload
    # 验证配置
    firewall-cmd --zone=$ZONE --list-forward-ports
    firewall-cmd --zone=$ZONE --list-rich-rules
    echo "端口转发已启用,将5060端口的TCP和UDP流量以及16384-32768端口范围的UDP流量转发到$TARGET_IP"
}

function disable_forwarding() {
    # 移除5060 TCP端口转发规则
    firewall-cmd --permanent --zone=$ZONE --remove-forward-port=port=$PORT:proto=$PROTO_TCP:toaddr=$TARGET_IP
    # 移除5060 UDP端口转发规则
    firewall-cmd --permanent --zone=$ZONE --remove-forward-port=port=$PORT:proto=$PROTO_UDP:toaddr=$TARGET_IP
    # 移除16384-32768 UDP端口范围转发规则
    firewall-cmd --permanent --zone=$ZONE --remove-rich-rule="rule family='ipv4' forward-port port='$RANGE_PORT_START-$RANGE_PORT_END' protocol='udp' to-addr='$TARGET_IP'"
    # 移除IP伪装
    firewall-cmd --permanent --zone=$ZONE --remove-masquerade
    # 重新加载防火墙配置
    firewall-cmd --reload
    # 验证配置
    firewall-cmd --zone=$ZONE --list-forward-ports
    firewall-cmd --zone=$ZONE --list-rich-rules
    echo "端口转发已停用"
}

function list_forwarding() {
    # 列出当前的转发规则
    firewall-cmd --zone=$ZONE --list-forward-ports
    firewall-cmd --zone=$ZONE --list-rich-rules
}

case "$1" in
    enable)
        enable_forwarding
        ;;
    disable)
        disable_forwarding
        ;;
    list)
        list_forwarding
        ;;
    *)
        echo "用法: $0 {enable|disable|list}"
        echo "  enable - 启用端口转发"
        echo "  disable - 停用端口转发"
        echo "  list - 列出当前的转发规则"
        exit 1
        ;;
esac

exit 0

使用说明

启用端口转发

./forwarding.sh enable

停用端口转发

./forwarding.sh disable

列出当前的转发规则

./forwarding.sh list

注意事项

  1. 确保firewalld服务已启动:如果firewalld未启动,规则将无法生效。
  2. 检查内核IP转发功能:如果转发仍然无效,可能需要检查内核是否启用了IP转发功能。可以通过以下命令启用:
    sysctl -w net.ipv4.ip_forward=1
    sysctl -p
    
  3. 确保目标IP地址可访问:确认TARGET_IP在内部网络中是可访问的。

OK

这样,就可以去把 conf/vars.xml里的变量改一下,就可以注册使用呼叫了 :

  <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=10.3.3.3"/> 
   <X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=10.3.3.3"/>

以上配置完后,你就可以通过 originate user/1003 3503 直接接入会了
但这里默认freeswitch还不允许外网直接呼叫内网,还要把:
conf/dialplan/public.xml 以下代码前后注释去掉,那么就通了

    <extension name="check_auth" continue="true">
      <condition field="${sip_authorized}" expression="^true$" break="never">
        <anti-action application="respond" data="407"/>
      </condition>
    </extension>

    <extension name="transfer_to_default">
      <condition>
        <action application="transfer" data="${destination_number} XML default"/>
      </condition>
    </extension>

相关文章:

  • npm i 出现的网络问题
  • Python Cookbook-4.13 获取字典的一个子集
  • 19.OpenCV图像二值化
  • 【Linux笔记】进程间通信——命名管道
  • 深度学习中的数据类型
  • 17-动规-最长增长子序列
  • leetcode90-子集II
  • 我的编程之旅:从零到无限可能
  • 剖析 Redis 缓存更新策略:保障数据一致性与系统性能的平衡
  • 光传输设备现状
  • 刷题日记day14-字符串-数组去重和排序
  • flutter 专题 七十四 Flutter开发之动画
  • 【Docker镜像】Python项目之使用Dockerfile构建镜像(二)
  • 在Trae中设置Python解释器版本
  • 从零实现3D自动标注:MS3D、MS3D++
  • Android 项目问题:The specified Android SDK Build Tools version (28.0.3) is ignored
  • 【SMBIOS数据块类型列表】
  • 精心整理-2024最新网络安全-信息安全全套资料(学习路线、教程笔记、工具软件、面试文档).zip
  • SQL Server:当在删除数据库时因为存在触发器而无法删除
  • 中小型企业网络的搭建
  • 王毅:时代不容倒退,公道自在人心
  • 湖南华容县通报“大垱湖水质受污染”,爆料者:现场已在灌清水
  • 我国成功发射卫星互联网低轨卫星
  • 俄罗斯总统普京:5月8日零时至11日零时实施停火
  • 恒瑞医药赴港上市获证监会备案,拟发行不超8.15亿股
  • “中国游”带火“中国购”,“即买即退”让外国游客购物更丝滑