由於阿里雲,谷歌雲,騰訊雲等服務器都不開放25端口和pop3端口,想要使用郵箱服務得購買他們的企業郵箱,但是對於個人而言比較貴。
所以我們需要利用家庭寬帶申請公網IP。
首先打電話給運營商客服,申請動態公網IP,因為靜態基本是白嫖不到的。理由:家里裝了監控,需要外網訪問。
我打完電話,過了半小時左右就有個電話過來找我確認,提供賬號后,再過幾分鍾重啟光貓或者路由器就能拿到一個動態的公網IP了。
可以進自己的路由器或者光貓,查看紅框對應的IP與百度查到的IP是否一致,一致說明拿到了公網IP。
然后最重要的一點是,設置光貓為橋接模式,而不是路由模式,然后在路由器撥號上網,因為大多數情況下,光貓只是個閹割版的路由器,沒有一般路由器那么多功能。比如NAT和DDNS,這些都是我們下面需要用到的。
路由器的信息
百度IP
這時候我們可以測試一下
但是在重新撥號后(即重啟路由器或光貓,在哪里撥號就是哪個設備),我們的公網IP會變化。這個時候我們就需要DDNS服務,能夠讓用戶不需要知道IP變化這一事實,直接用域名進行訪問。
這里我使用了花生殼的祖傳免費DDNS,然后用我自己的域名的CNAME解析到花生殼用於DDNS的域名(免費的域名就是丑)
路由器DDNS頁面
阿里雲域名解析
再次測試
測試完畢之后,可以參考這兩篇文章安裝hmailserver。
推薦看第一篇根據公鑰和私鑰來配置服務器。
其他配置參考第二篇。第二篇中的foxmail,需要下圖配置。如果你的域名解析跟我的阿里雲格式一樣
https://blog.csdn.net/khzide/article/details/102874011
https://www.cnblogs.com/lsdb/p/9448123.html
之后在路由器和本機防火牆開放對應端口(嫌麻煩的話,用DMZ主機,不過要記得備份電腦)就可以實現收發郵件了。
對於Web端管理界面的安裝。則按照下面的步驟操作
首先查看自己是否有IIS。使用win+s查看
搜索並安裝PHP。如果打開太慢可以考慮用梯子。
安裝完PHP后,找到php.ini
添加
[PHP_COM_DOTNET]
extension=php_com_dotnet.dll
修改
com.allow_dcom = true
將PHPwebadmin放到對應路徑
打開PHPwebadmin檔夾重命名config-dist檔為config並用記事本打開修改:
$hmail_config['rooturl']= "http://用戶訪問的域名:12450/PHPWebAdmin/";
為了防止 XSS 攻擊
和 CSRF 攻擊
,如果用戶使用非指定url進行訪問,會被駁回。
之后再路由器那里設置NAT端口轉發就行,因為家庭寬帶80端口會被禁用。外部端口設置12450,內部設置80即可。或者設置DMZ主機。
設置DMZ主機需要注意自己電腦的防護,如果電腦所裝軟件過多,被利用漏洞也就更多。在公網環境下,容易被入侵,建議只開放對應的端口。
DMZ介紹
NAT端口轉發
之后在cmd輸入iisreset重啟iss服務,就能進入hmailserver的web端啦。
如果有出現403 forbidden。一般是用戶權限的問題,將錯誤信息copy下來,百度搜索即可。
如果使用foxmail過程中出現很快就出現遠程主機強迫關閉了一個現有的連接 ,重新撥號更換公網IP即可。因為端口被封禁了。
重新撥號公網IP改變后,使用在foxmail中填寫發件服務器和收件服務器為域名的賬號收發會出現異常。通過逆向分析后發現foxmail使用ping指令來獲得域名對應的IP地址,ping指令獲取域名大致流程如下
1、主機查找本地系統Hosts文件的DNS緩存,如果存在該域名對應的IP,則獲取IP,跳轉到第8步;如果不存在,則繼續。
2、主機向本網絡路由器發起請求,查找路由DNS緩存,如果存在該域名對於的IP,則獲取IP,跳轉到第8步;如果不存在,則繼續。
3、路由器向本地ISP(互聯網提供商)的DNS服務器發起請求,查找DNS服務器的緩存,如果存在該域名對應的IP,則跳轉到第7步;如果不存在,則繼續。
4、本地DNS服務器向根域名服務器發起請求,根域名服務器告訴本地服務器,下一次應查詢的頂級域名服務器dns.com的IP地址。
5、本地域名服務器向頂級域名服務器dns.com進行查詢,頂級域名服務器dns.com告訴本地域名服務器,下一步應查詢的權限服務器dns.abc.com的IP地址。
6、本地域名服務器向權限域名服務器dns.abc.com進行查詢,權限域名服務器dns.abc.com告訴本地域名服務器,所查詢的主機的IP地址。
7、本地域名服務器最后把查詢結果——該域名對應的IP地址告訴給主機。
8、至此,主機知道了該域名的IP地址。
在使用host指令對本地dns服務器中的域名進行查詢時,發現IP地址已更新,然而ping的IP地址仍然沒有改變,顯然是路由器的dns緩存出了問題。電信運營商的DNS服務器更新較慢,可以更換為阿里雲的dns 223.5.5.5
最后用foxmail收發郵件,發現有各種問題,能收不能發,或能發不能收.但刪除FOXMAIL賬號重新建立后一切就正常了.