注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

晋显中国风

记录,不一定需要文字但一定要有心情

 
 
 

日志

 
 

主機在防火牆內 (Firewall-NAT) 的設定 (转载地址:http://www.osslab.com.tw/)  

2013-05-07 14:35:50|  分类: VOIP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

主機在防火牆內 (Firewall-NAT) 的設定

Elastix/Asterisk 主機設定

PBX > Tools > File Editor > File: sip_nat.conf,增加以下兩行。

externip=aaa.aaa.aaa.aaa
localnet=bbb.bbb.bbb.bbb/255.255.255.0

externip - 主機所對應的外部網路 IP
localnet - 與主機在同一個LAN,所有內部分機的內部網路之網段,如有 vLan 環境可設多組網段。

aaa.aaa.aaa.aaa    外部網路 IP 位址
bbb.bbb.bbb.bbb  內部網路的子網路定義,例如 192.168.1.0。

如果沒有固定的 IP,可以使用 DDNS 服務,且設定將 externip 改成 externhost,並填寫正確的主機 FQDN 名稱。

externhost=mypbx.mydomain.com

變更設定後需重啟服務,才會生效。

檢查設定是否有被套用:

# Asterisk -rx "sip show settings"

Network Settings:
---------------------------
  SIP address remapping:  Enabled using externip
  Externhost:             <none>
  Externip:               123.123.123.123:5060
  Externrefresh:          10
  Internal IP:            127.0.0.1:5060
  Localnet:               192.168.9.0/255.255.255.0
  STUN server:            0.0.0.0:0

注意:新版的 Asterisk 1.8+ 已經將 externip 改成 externaddr

Firewall 設備的設定

這裡的設定程序會依實際使用的設備而有所不同,不過大致區分有兩種作法:

  1. DMZ
    將 Elastix 設定為 DMZ,且確保 SIP、RTP、IAX2 通訊埠允許通過,且都有對應到 Elastix 主機。
    SIP - 5060 UDP。
    RTP - 10000~20000 UDP,請參照 /etc/asterisk/rtp.conf
    IAX2 - 4569 TCP/UDP。

     
  2. Port Forwarding
    確認 SIP、RTP、IAX2 這些通訊埠(各埠號同上述)可以轉送至 Elastix 主機,且無其他應用程式佔用。
常見問題
  1. 遠端網路的分機或另一台 Elastix 主機無法註冊?
    Ans:請在 分機或 SIP Trunk 設定增加 nat=yes。
     
  2. 遠端的分機可以成功註冊但聽不到聲音,而內部分機是正常的?
    Ans:這個問題多半是 RTP 無法正常通過防火牆所致,請重新檢查上述的所有步驟,尤其是 RTP 的部份。
     
  3. 主機放在網路防火牆內,不需要遠端分機註冊,防火牆該如何設定安全政策?
    Ans:假使沒有遠端分機註冊的需求,在網路防火牆的安全政策設定,仍需要開啟 Port forwarding for RTP,否則當接收其他的 SIP 來電時,撥號者會聽不到任何聲音。
     
  4. 如何決定 RTP port 的可用範圍?
    Ans:一個電話終端會用到 2 port,分機 A 撥給分機 B 就會用到 4 port,如使用視訊通話,則一個視訊通話會用到 4 port,可參閱此篇討論
     
  5. 對於某些 Router 即使修改的 Asterisk 的設定,仍是聽不到聲音?
    Ans:檢查 Router 是否開啟 SIP ALG(預設通常是開啟的),將它關閉試試。參閱:http://www.sysfix.co.uk/blog/2011/01...-sip-asterisk/
技巧
如何檢測主機 5060 port 有否正常對外通訊?

使用另一台在外網的 Linux 電腦,執行以下指令,偵測對方主機是否開啟 port 5060。
//若對方主機的網路未封鎖 ping 指令,請用
#>nmap -sU -p 5060 <對方主機 IP 位址>

//若對方主機的網路封鎖 ping 指令,請用
#>nmap -P0 -p 5060 <對方主機 IP 位址>

通訊埠可連線時狀態

Starting Nmap 4.68 ( http://nmap.org ) at 2009-01-23 18:51 PST
Interesting ports on 192.168.1.254:
PORT     STATE         SERVICE
5060/udp open|filtered sip

通訊埠不可連線時狀態

Starting Nmap 4.68 ( http://nmap.org ) at 2009-01-23 19:12 PST
Interesting ports on 192.168.1.254:
PORT     STATE  SERVICE
5060/udp closed sip

 

參考文件
  评论这张
 
阅读(1236)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017