Siyuan's Blog

  • 首页

  • 归档

  • 标签

  • 搜索

解決 EdgeRouter 雙 WAN 時某一出口無法正常 NAT 的問題

发表于 2013-12-13 | 更新于 2014-06-07 |

前幾天在路由器上跑 mtr 把 ssh 跑死了,由於沒接 Console 的線我也不知道為什麼所以乾脆重啟了一下。

然後,我聯通出口的 NAT 掛掉了。 :-(

我的網絡架構是這樣子的:

接入層 EdgeRouter Lite:

  • eth0 接入到室內交換機
  • eth1 上聯公用 TP-LINK 路由器,使用 DHCP 接入長城寬帶
  • eth2 上聯聯通 EPON 終端設備,通過 PPPoE 接入聯通寬帶

重啟之後由於 eth1 的 DHCP 先獲取到了 IP 地址,系統的默認路由就變成了 eth1。

於是後來 eth2 上連接的 PPPoE 連接完成後沒有修改默認路由,NAT 自然不知道把數據往哪裡扔了,所以… 解決辦法很簡單咯:

1
sudo ip route replace default via pppoe0

搭建 Exim4 來去除 Google Apps 發送郵件時提示以某某的身份發送的問題

发表于 2013-11-26 | 更新于 2015-02-14 |

之前為了防止各個服務商沒事兒洩漏我 E-mail 地址,我每次註冊服務時填寫的註冊郵箱地址都是 **provider-name@xswan.net** 這種形式的,本來這樣沒什麼問題,但是 … 要回覆的時候問題就來了。

首先我們把這個郵箱添加到 Send mail as 裡去,然後 … 嗯發郵件的時候,就會出現這樣討厭的提示了:

06$TKM1B6LFD8R2O~_NXFYY.jpg

在 Google Apps 的後臺找了半天也沒發現能重寫 Envelope-From 這個頭的地方,那就搭建一個 Exim4 好啦~

這裡我使用的是 DigitalOcean 的 VPS 來搭建 Exim4,主要原因是:

  1. 可以設置 PTR,郵件服務器不做反向解析的話到達率可是很低的喲
  2. 性價比高,5 USD 還 SSD 你到哪兒找去(LowEndBox 什麼的地方除外)

操作系統我使用的是 Debian 7 x64,安裝步驟如下:

1. 安裝 Exim4

1
2
3
apt-get update
apt-get -y upgrade
apt-get -y install mailutils exim4-daemon-light

2. 配置 Exim4
把以下內容覆蓋到 /etc/exim4/update-exim4.conf.conf 然後運行 dpkg-reconfigure exim4 一路 Next 即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='true'
dc_relay_nets='216.239.32.0/19;64.233.160.0/19;66.249.80.0/20;72.14.192.0/18;209.85.128.0/17;66.102.0.0/20;74.125.0.0/16;64.18.0.0/20;207.126.144.0/20;173.194.0.0/16'
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

上面的 dc_relay_nets 裡是 Google 的 IP 段,獲取方法在 這裡。

3. 配置 Exim4 重寫規則
將以下內容寫入 /etc/exim4/conf.d/rewrite/32\_exim4-rewrite-envelope-from:

1
a@loli.vg $h_from F

`a@loli.vg` 是我的郵箱地址,實際操作中請按換成自己的嗯。。

修改完成後重啟 exim4:

1
invoke-rc.d exim4 restart

4. 安全加固
其實就是用 iptables 把來自非 Google 的 IP 屏蔽掉而已,雖然第二步的 dc_relay_nets 已經處理了,但是我覺得拒絕投遞的日誌出現也很煩,那就在 iptables 裡再屏蔽一次好了 :-)

1
2
3
4
5
6
7
8
9
10
11
12
iptables -A INPUT -s 216.239.32.0/19 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 64.233.160.0/19 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 66.249.80.0/20 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 72.14.192.0/18 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 209.85.128.0/17 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 66.249.80.0/20 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 66.102.0.0/20 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 74.125.0.0/16 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 66.249.80.0/20 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 207.126.144.0/20 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -s 173.194.0.0/16 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j DROP

5. 修改域名 A 記錄和 SPF 記錄
首先添加一條 _spf.moease.org,記錄類型為 SPF(沒有 SPF 的選 TXT):
"v=spf1 a:mx1.moease.org ip4:198.211.101.101 ?all"

這裡的 mx1.moease.org 就是我運行 Exim4 的機器的 Hostname,198.211.101.101 是它的 IP 地址。

然後將 moease.org 的 SPF 記錄修改為:
"v=spf1 include:_spf.moease.org include:_spf.google.com -all"

關於 SPF 記錄的更多知識可以在小允的 Blog 裡找到,這裡就不再敘述了。

6. 修改 Google Apps 郵件發送設置
打開 Google Apps 控制面板,依次打開:
Google Apps > Gmail > Advanced Settings

在打開的頁面裡找到 Outbound gateway,填上郵件服務器的地址保存即可,我這裡填寫的是 mx1.moease.org。
(沒有的請先升級到付費版本)

好啦,完結撒花~

CSS 实现图片等比缩放

发表于 2013-09-02 | 更新于 2014-06-07 |

嗯因为客户的站点编辑内容的时候上传的图片部分没有缩放,所以得在 CSS 上处理一下。

直接上代码咯。

1
2
3
4
5
6
.content img.full-width {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}

非 IE6 下工作正常,不过这种老掉牙的浏览器就不要考虑它了。
(不过客户说还是要考虑的 … 望天 … 你在说神马 … 我不知道 IE6 是什么东西诶 …

1…567…12

Siyuan Miao

35 日志
42 标签
GitHub Twitter
© 2018 Siyuan Miao
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Mist v6.3.0