锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
-> Pages,Locked Pages.
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍦ㄧ幇浠f搷浣滅郴緇熶腑錛屽唴瀛樼鐞嗕細(xì)鎶婁富瀛?RAM)鍒嗘垚Pages鏉ョ鐞嗐?Paging(鎴栬卻wapping錛夋寚鐨勬槸涓誨瓨?shù)笌澶栧瓨?shù)箣闂翠互Page涓哄崟浣嶈繘琛屾暟鎹殑浜ゆ崲銆侺ocked Pages鎸囩殑鏄閿佸畾鍦ㄤ富瀛樹(shù)腑鐨勫唴瀛橀〉錛屼互淇濊瘉涓浜涘唴鏍哥粍浠?driver鍙互璁塊棶鍒板畠浠倃indows涓瀹氫細(xì)淇濊瘉涓瀹氭暟閲忕殑鍙氦鎹㈢殑鍐呭瓨絀洪棿錛岄槻姝竴浜涢潪娉曠▼搴忛攣瀹氭墍鏈夌殑鐗╃悊鍐呭瓨錛岃岃嚧浣跨郴緇熷穿婧冦傚湪windows NT, windows 2000涓婏紝鍙攣瀹氱殑鍐呭瓨鎬葷殑澶у皬涓婇檺澶ф鏄墿鐞嗗唴瀛樼殑1/8(褰撶劧瀵逛簬紼嬪簭鐨勫紑鍙戜漢鍛橈紝涓嶅簲璇ュ榪欎釜鍊艱繘琛屼換浣曠殑鍋囪錛岃繖涓煎彲鑳戒細(xì)闅忕潃鎿嶄綔緋葷粺鏈増鐨勫彉鍖栬屽彉鍖?銆傚湪Winsock搴旂敤寮鍙戣繃紼嬩腑錛屼互overlapped鏂瑰紡璇誨啓IO鎿嶄綔錛屽皢浼?xì)瀵艰嚧鍐呭瓨琚攣瀹氥?br />-> working set
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍦ㄧ▼搴忓紑濮嬭繍琛岋紝騫惰揪鍒板叾紼沖畾鐨勮繍琛岀姸鎬侊紙涓昏鎸囩殑鏄叾瀵瑰唴瀛樼殑浣跨敤錛夛紝鍦ㄨ繖涓姸鎬佷笅錛岀▼搴忎嬌鐢ㄥ唴瀛樼殑鏁伴噺涓鑸皬浜庡叾闇瑕佷嬌鐢ㄥ唴瀛樼殑鎬婚噺銆傝繖鏍蜂竴涓ǔ瀹氱殑榪愯鐘舵侊紝鎴戜滑鍙互縐頒負(fù)working set: 琚紼嬪簭棰戠箒璁塊棶鐨勫唴瀛橀〉鐨勯泦鍚堛傚湪windows涓婏紝浣犲彲浠ヤ嬌鐢⊿etWorkingSetSize Win32 API鏉ュ鍔犵▼搴忎嬌鐢ㄧ墿鐞嗗唴瀛樼殑鏁伴噺銆?br />-> non-paged pool
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 涓嶅彲浜ゆ崲鐨勫唴瀛樸傝繖涓昏鎸囦互non-paged鐨勬柟寮忓垎閰嶇殑鍐呭瓨錛岃繖浜涘唴瀛樺氨鍍弆ocked pages涓鏍鳳紝鏄粠鏉ヤ笉浼?xì)琚氦鎹㈠嚭鍘荤殑锛岀敤鏉ュ瓨鏀句竴浜涚敱鍐呮牳緇勪歡,driver璁塊棶鐨勪俊鎭?鍦╓insock搴旂敤寮鍙戣繃紼嬩腑錛屼互涓嬬殑鎿嶄綔鍙兘瀵艱嚧鍒嗛厤non-paged鍐呭瓨銆?br />1) 璋冪敤緋葷粺涓浜涚郴緇熺殑API錛屼緥濡傛墦寮鏂囦歡錛宑reate socket錛岀瓑錛岄兘浼?xì)瀵艰嚧浠巒on-paged pool鍒嗛厤鍐呭瓨銆?br />2) 涓浜沝river鍙互鏄懼紡鍦頒粠璇ュ尯鍩熷垎閰嶅唴瀛樸?br />浜? Winsock server涓奓ocked Pages浣跨敤銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鎴戜滑鎻愬埌榪囷紝浠諱綍鐨刼verlapped IO鎿嶄綔錛岄兘浼?xì)瀵艰嚧閿佸畾鍐呭瓨椤点傝繖浜涘唴瀛橀〉涓鏃﹁locked,灝變笉浼?xì)琚氦鎹㈠嚭鍘汇傛垜浠煡閬擄紝windows鎿嶄綔緋葷粺瀵規(guī)渶澶х殑鍙攣瀹氬唴瀛橀〉鍋氫簡(jiǎn)涓涓笂闄愶紝濡傛灉瓚呭嚭榪欎釜涓婇檺錛宱verlapped IO璋冪敤灝嗕細(xì)瀵艱嚧WSAENOBUFS閿欒銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鑰冭檻涓嬮潰鐨勬儏鍐碉紝濡傛灉server鍦ㄦ瘡涓繛鎺ヤ笂浼?xì)鍙戝嚭寰堝鐨刼verlapped receives鎿嶄綔錛岄偅涔堬紝闅忕潃榪炴帴鏁扮洰鐨勫澶氾紝寰堟槑鏄撅紝琚攣瀹氱殑鍐呭瓨鏁伴噺寰堟湁鍙兘杈懼埌涓婇檺鑰屽鑷碬SAENOBUFS閿欒銆傚湪榪欑鎯呭喌涓嬶紝濡傛灉鏈嶅姟鍣ㄩ鏈熶細(xì)澶勭悊澶ф暟閲忕殑瀹㈡埛绔繛鎺ワ紝鍒欓渶瑕佹湇鍔″櫒鍦ㄦ瘡涓繛鎺ヤ笂鍙戝嚭zero-byte buffer鐨刼verlapped鎺ユ敹璇鋒眰(榪欑鎯呭喌涓嬶紝鍥犱負(fù)the size of buffer is zero,鎵浠ユ病鏈変換浣曞唴瀛樿閿佸畾)錛屼竴鏃verlapped鎺ユ敹鎿嶄綔瀹屾垚錛宻erver鍙互浠on-blocking鏂瑰紡鎵цreceive鎿嶄綔錛屼互鍙栧緱鎵鏈夌紦瀛樺湪so_rcvbuf涓殑鏁版嵁錛岀洿鍒拌繑鍥濿SAEWOULDBLOCK涓烘銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍙﹀闇瑕佹敞鎰忕殑鏄紝windows鍦╬age鐨勮竟鐣屼笂瀵瑰唴瀛樿繘琛岄攣瀹氾紝鍦▁86騫沖彴涓婏紝瀹冩槸4kb鐨勬暣鏁板嶃傛墍浠ワ紝鍋囧浣爌ost浜?jiǎn)涓涓? KB buffer錛岃岀郴緇熺湡瀹為攣瀹氱殑鏄? KB 鐨勫ぇ灝忥紝涓轟簡(jiǎn)閬垮厤榪欐牱鐨勬氮璐癸紝灝介噺鐢?kb鐨勬暣鏁板仛overlapped聽(tīng) IO鎿嶄綔銆?br />涓? Winsock server涓妌on-paged pool浣跨敤銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)鍚孡ocked Pages闄愬埗涓鏍鳳紝windows瀵筺on-paged pool涔熸湁涓涓渶澶х殑闄愬埗銆傚茍涓旓紝褰撲綘鐨勫簲鐢ㄥ嚭鐜拌繖涓棶棰樼殑鏃跺欙紝瓚呭嚭瀹冪殑鏈澶ч檺鍒舵暟錛屾儏鍐佃榪滄瘮Locked Pages澶嶆潅銆傝繖縐嶆儏鍐典笅錛屽悗鏋滄槸涓嶇‘瀹氱殑錛屾湁鍙兘浣犵殑Winsock璋冪敤榪斿洖WSAENOBUFS閿欒錛屼篃鏈夊彲鑳斤紝鍦ㄧ郴緇熶腑錛屼竴涓拰浣犵殑搴旂敤姣棤鍏寵仈鐨刣river鐢變簬鐢寵涓嶅埌non-paged鍐呭瓨鑰岃嚧浣縮ystem crash銆傝岃繖鏍風(fēng)殑鐏鵑毦錛屾槸娌℃硶鎭㈠鐨勩?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鑰冭檻涓涓叿浣撶殑渚嬪瓙錛氭垜浠亣璁懼湪windows2000涓?緋葷粺鏈? GB鍐呭瓨銆傝繖鏍風(fēng)殑閰嶇疆涓嬶紝windows澶ф浼?xì)棰勭?/4鐨勭┖闂寸敤浣渘on-paged pool(鍚屾牱錛屽浜庣▼搴忕殑寮鍙戜漢鍛橈紝涓嶅簲璇ュ榪欎釜鍊艱繘琛屼換浣曠殑鍋囪)錛屽嵆錛?56MB銆傝繖鏍風(fēng)殑閰嶇疆涓嬶紝淇濆畧浼拌錛屾垜浠殑Winsock server鑳藉澶勭悊鍒板ぇ姒?0,000榪炴帴錛屾垨鑰呮洿澶氥?姣忎釜accepted socket澶ф娑堣?.5kb錛屾瘡涓繛鎺ヤ笂post涓涓猳verlapped鎿嶄綔錛屽垎閰嶄竴涓狪RP,澶ф闇瑕?00 byte, 鎬昏錛?1500+500)*50,000 = 100 Mb) 銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏃犺鏄浜嶭ocked Pages錛岃繕鏄浜巒on-paged pool浣跨敤錛屼竴鏃﹁秴鍑轟簡(jiǎn)涓婇檺錛學(xué)insock璋冪敤浠呬粎浼?xì)杩斿洖涓鑸殑WSAENOBUFS 鎴栬匛RROR_INSUFFICIENT_RESOURCES閿欒銆備負(fù)浜?jiǎn)澶勭悊杩欎簺閿欒锛屼綘鍙互璇曡瘯浠ヤ笅鐨勬栆?guī)硶錛?br />1錛?闇瑕侀鍏堣皟鐢⊿etWorkingSetSize,澧炲姞搴旂敤鐨勫彲鏀厤璧勬簮鏁幫紝鐪嬭兘鍚﹁В鍐熾?br />2)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 紜俊浣犵殑搴旂敤娌℃湁鍋氬嚭澶鐨刼verlapped聽(tīng) IO鎿嶄綔銆?br />3錛?鍏抽棴涓浜涜繛鎺ユ暟銆?br />鍥? SOCKET鐨勭紦鍐插尯璁劇疆闂銆?/u>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Winsock鍦ㄩ粯璁ょ殑鎯呭喌涓嬶紝姣忎釜socket閮戒細(xì)涓庝竴涓猻end鍜宺eceive buffer鐩稿叧鑱斻備綘鍙互閫氳繃璋冪敤setsockopt鏉ヨ緗産uffer鐨勫ぇ灝忋?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍦ㄧ紦鍐插尯娌℃湁琚叧闂殑鎯呭喌涓嬶紝鎴戜滑鐪嬬湅overlapped send鍜宺evc鏄庝箞宸ヤ綔鐨勩?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 褰撲笂灞傜殑搴旂敤鍋氬嚭浜?jiǎn)send璋冪敤錛岃岃繖鏃跺鏋渟end buffer榪樻湁鍓╀綑鐨勭┖闂達(dá)紝閭d箞鏁版嵁灝嗕細(xì)浠庣敤鎴鋒彁浜ょ殑buffer澶嶅埗鍒皊end buffer涓紝鐒跺悗璋冪敤榪斿洖鎴愬姛銆傚惁鍒欙紝鍋囧榪欐椂send buffer宸叉弧錛岀敤鎴鋒彁浜ょ殑buffer灝嗕細(xì)琚攣瀹氾紝騫朵笖璋冪敤榪斿洖WSA_IO_PENDING銆傚綋send buffer鐨勬暟鎹涓嬪眰鐨則cp澶勭悊瀹屾垚錛寃insock灝嗙洿鎺ュ鐞嗙敤鎴鋒彁浜ょ殑buffer閲岀殑鏁版嵁錛岃屼笉闇瑕佸啀澶嶅埗銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍚屾牱錛屽浜巖ecv鎿嶄綔錛屽鏋滄暟鎹凡緇忚緙撳瓨鍦╯ocket鐨剅eceive buffer閲岋紝褰撳彂鐢焤ecv璋冪敤鐨勬椂鍊欙紝鏁版嵁灝嗙洿鎺ヤ粠socket鐨剅eceive buffer澶嶅埗鍒扮敤鎴風(fēng)殑buffer閲岋紝recv璋冪敤榪斿洖鎴愬姛銆傚惁鍒欙紝鍋囧鍙戠敓璋冪敤鏃秗eceive buffer閲屾病鏈夋暟鎹紝鐢ㄦ埛鎻愪氦鐨刡uffer灝嗕細(xì)琚攣瀹氾紝recv璋冪敤榪斿洖WSA_IO_PENDING銆傚綋鏁版嵁鍒拌揪褰撳墠榪炴帴錛屽皢浼?xì)琚洿鎺ュ鍒跺埌鐢ㄦ堜h彁浜ょ殑buffer閲屻?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 涓涓簲鐢ㄧ▼搴忛氳繃璁懼畾send buffer涓?錛屾妸緙撳啿鍖哄叧闂紝鐒跺悗鍙戝嚭涓涓樆濉瀞end()璋冪敤銆傚湪榪欐牱鐨勬儏鍐典笅錛岀郴緇熷唴鏍鎬細(xì)鎶婂簲鐢ㄧ▼搴忕殑緙撳啿鍖洪攣瀹氾紝鐩村埌鎺ユ敹鏂圭‘璁ゆ敹鍒頒簡(jiǎn)鏁翠釜緙撳啿鍖哄悗send()璋冪敤鎵嶈繑鍥炪備技涔庤繖鏄竴縐嶅垽瀹氫綘鐨勬暟鎹槸鍚﹀凡緇忎負(fù)瀵規(guī)柟鍏ㄩ儴鏀跺埌鐨勭畝媧佺殑鏂規(guī)硶錛屽疄闄呬笂鍗村茍闈炲姝ゃ傛兂鎯崇湅錛屽嵆浣胯繙绔痶cp閫氱煡鏁版嵁宸茬粡鏀跺埌錛屽叾瀹炰篃鏍規(guī)湰涓嶄唬琛ㄦ暟鎹凡緇忔垚鍔熼佺粰瀹㈡埛绔簲鐢ㄧ▼搴忥紝姣斿瀵規(guī)柟鍙兘鍙戠敓璧勬簮涓嶈凍鐨勬儏鍐碉紝瀵艱嚧afd.sys涓嶈兘鎶婃暟鎹嫹璐濈粰搴旂敤紼嬪簭銆傚彟涓涓洿瑕佺揣鐨勯棶棰樻槸錛屽湪姣忎釜綰跨▼涓瘡嬈″彧鑳借繘琛屼竴嬈″彂閫佽皟鐢紝鏁堢巼鏋佸叾浣庝笅銆?
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍙﹀錛屽笇鏈涢氳繃鍏抽棴Winsock緙撳啿鍖猴紝浠庤岄伩鍏嶆暟鎹鍒訛紝杈懼埌浼樺寲鎬ц兘鐨勭洰鐨勶紝涔熸槸涓嶅彲鍙栫殑銆備粠涓婇潰錛屾垜浠湅鍒幫細(xì)鍙搴旂敤淇濊瘉閫傞噺鐨勶紝瓚沖鐨剆end, recv璋冪敤錛岃繖鏍風(fēng)殑澶嶅埗鏄畬鍏ㄥ彲浠ラ伩鍏嶇殑銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 楂樻ц兘鐨勬湇鍔″櫒搴旂敤紼嬪簭鍙互鍏抽棴鍙戦佺紦鍐插尯錛屽悓鏃朵笉浼?xì)鎹熷け鎬ц兘銆備笉榪囷紝榪欐牱鐨勫簲鐢ㄧ▼搴忓繀欏誨崄鍒嗗皬蹇?jī)锛屼繚璇佸畠鎬繪槸鍙戝嚭澶氫釜閲嶅彔鍙戦佽皟鐢紝鑰屼笉鏄瓑寰呮煇涓噸鍙犲彂閫佺粨鏉熶簡(jiǎn)鎵嶅彂鍑轟笅涓涓傚鏋滃簲鐢ㄧ▼搴忔槸鎸変竴涓彂瀹屽啀鍙戜笅涓涓殑欏哄簭鏉ユ搷浣滐紝閭f氮璐規(guī)帀涓ゆ鍙戦佷腑闂寸殑絀烘。鏃墮棿錛屾諱箣鏄淇濊瘉浼犺緭椹卞姩紼嬪簭鍦ㄥ彂閫佸畬涓涓紦鍐插尯鍚庯紝绔嬪埢鍙互杞悜鍙︿竴涓紦鍐插尯銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 濡傛灉鍏抽棴浜?jiǎn)recv buffer錛屽湪浣犵殑搴旂敤娌℃湁淇濊瘉瓚沖鐨剅ecv鎿嶄綔鍓嶆彁涓嬶紝浠諱綍榪涙潵鏁版嵁錛屽繀欏誨湪TCP灞傝繘琛岀紦瀛橈紝鏈澶х紦瀛樼殑鏁伴噺灝嗗彇鍐充簬tcp windows鐨勫ぇ灝?17Kb)銆傝屾渶涓轟弗閲嶇殑鏄繖浜涚紦瀛樻槸浠巒on-paged pool鍒嗛厤鑰屾潵銆傚涓婃墍榪幫紝non-paged pool鏄潪甯哥弽璐碉紝紼緙虹殑鍐呭瓨銆傛墍浠ワ紝浠庤繖涓剰涔変笂鏉ヨ錛屽叧闂簡(jiǎn)recv buffer鎿嶄綔鏄笉鍙彇鐨勩?img src ="http://www.shnenglu.com/lapcca/aggbug/116873.html" width = "1" height = "1" />
]]>
銆銆銆鐜板湪澶у鍦ㄥ拰Java, PHP, .net鍐欏簲鐢ㄧ▼搴忔椂錛岄兘浼?xì)鐢ㄥ堫C竴浜涙垚鐔熺殑鏈嶅姟妗嗘灦錛屾墍浠ュ紑鍙戞晥鐜囨槸姣旇緝楂樼殑銆傝屽湪鐢–/C++鍐欐湇鍔″櫒紼嬪簭鏃訛紝鐢ㄧ殑灝變簲鑺卞叓闂ㄤ簡(jiǎn)錛屾湁浜涗漢鐢ˋCE, 鏈変簺浜虹敤ICE錛堝彿縐版瘮ACE寮鴻澶氾級(jí)錛岀瓑絳夛紝榪欑被鏈嶅姟鍣ㄦ鏋跺強(qiáng)搴撴瘮杈冧赴瀵岋紝浣嗗叆闂ㄩ棬妲涙瘮杈冮珮錛屾墍浠ユ洿澶氱殑浜烘槸鑷繁鐩存帴鍐欐湇鍔″櫒紼嬪簭錛屽垵濮嬪啓鏃惰寰楁瘮杈冪畝鍗曪紝鍙椂闂翠箙浜?jiǎn)锛屼究浼?xì)瑙夊緱闅句互鎵╁睍錛屾ц兘浣庯紝瀹規(guī)槗鍑洪敊銆傚叾瀹烇紝Postfix 浣滆呬負(fù)鎴戜滑鎻愪緵浜?jiǎn)涓涓珮鏁堛佺ǔ瀹氥佸畨鍏ㄧ殑鏈嶅姟鍣ㄦ鏋舵ā鍨嬶紝铏界劧Postfix涓昏鐢ㄤ綔閭歡緋葷粺鐨?mta錛屼絾鍏舵鏋惰璁″嵈闈炲父鍏鋒湁閫氱敤鎬с侫CL(http://acl.sourceforge.net/) 鐨勪綔鑰呭皢Postfix鐨勬湇鍔″櫒妗嗘灦妯″瀷鎶藉彇鍑烘潵錛屽艦鎴愪簡(jiǎn)鏇村姞閫氱敤鐨勬湇鍔″櫒紼嬪簭寮鍙戞鏋訛紝浣跨▼搴忓憳鍦ㄧ紪鍐欐湇鍔″櫒紼嬪簭鏃跺彲浠ヨ揪鍒頒簨鍗婂姛鍊嶇殑鏁堟灉銆傛湰鏂囦富瑕佷粙緇嶄簡(jiǎn)ACL涓璦cl_master鏈嶅姟鍣ㄧ▼搴忥紙鍩轟簬Postifx鏈嶅姟鍣ㄧ▼搴忔鏋訛級(jí)鐨勮璁″強(qiáng)鍔熻兘銆?/p>
銆銆浜屻佹鏋惰璁″浘
銆銆濡備笅鍥炬墍紺猴細(xì)
銆銆
銆銆鍥?--妗嗘灦鍥?/p>
銆銆銆銆 master涓昏繘紼嬩負(fù)鎺у埗榪涚▼錛屽垰鍚姩鏃跺叾璐熻矗鐩戝惉鎵鏈夌鍙f湇鍔★紝褰撴湁鏂扮殑瀹㈡埛绔繛鎺ュ埌杈炬椂錛宮aster渚夸細(xì)鍚姩瀛愯繘紼嬭繘琛屾湇鍔★紝鑰岃嚜宸變緷鐒剁洃鎺ф湇鍔$鍙o紝鍚屾椂鐩戞帶瀛愯繘紼嬬殑宸ヤ綔鐘舵侊紱鑰屾彁渚涘澶栨湇鍔$殑瀛愯繘紼嬪湪master鍚姩鏃訛紝鑻ユ病鏈夎姹備換鍔″垯涓嶄細(xì)琚惎鍔紝鍙湁褰撴湁榪炴帴鎴栦換鍔″埌杈炬椂鎵嶄細(xì)琚玬aster 鍚姩錛屽綋璇ユ湇鍔″瓙榪涚▼澶勭悊瀹屾煇涓繛鎺ユ湇鍔″悗騫朵笉绔嬪嵆閫鍑猴紝鑰屾槸椹葷暀鍦ㄧ郴緇熶竴孌墊椂闂達(dá)紝絳夊緟鍙兘鐨勬柊榪炴帴鍒拌揪錛岃繖鏍峰綋鏈夋柊鐨勮繛鎺ュ埌杈炬椂master灝變笉浼?xì)鍚姩鏂扮殑瀛悩q涚▼錛屽洜涓哄凡緇忔湁澶勪簬絀洪棽鐨勫瓙榪涚▼鍦ㄧ瓑寰呬笅涓涓繛鎺ヨ姹傦紱褰撴湇鍔″瓙榪涚▼絀洪棽鏃墮棿杈句竴瀹氶榾鍊煎悗錛屽氨浼?xì)閫夋嫨閫鍑猴紝灝嗚祫婧愬叏閮ㄥ綊榪樻搷浣滅郴緇燂紙褰撶劧錛屼篃鍙互閰嶇疆鎴愭湇鍔″瓙榪涚▼姘鎬笉閫鍑虹殑妯″紡錛夈傚洜姝わ紝鍙互縐拌繖縐嶆湇鍔″櫒妗嗘灦涓哄崗浣滃紡鍗婇┗鐣欏紡鏈嶅姟鍣ㄦ鏋訛紝涓嬮潰灝嗕細(xì)瀵瑰崗浣滃紡鍜屽崐椹葷暀浣滆繘涓姝ヤ粙緇嶃?/p>
銆銆涓夈佸崗浣滄柟寮?/p>
銆銆Postfix鏈嶅姟鍣ㄦ鏋惰璁$殑闈炲父宸у錛屽洜涓簃aster姣曠珶灞炰簬鐢ㄦ埛絀洪棿榪涚▼錛屼笉鑳借薄鎿嶄綔緋葷粺閭f牱鍙互鎺у埗姣忎釜榪涚▼鐨勮繍琛屾椂闂寸墖錛屾墍浠aster涓昏繘紼嬪繀欏諱笌鍏舵湇鍔″瓙榪涚▼涔嬮棿鍗忎綔濂斤紝浠ュ鐞嗗ソ浠ヤ笅鍑犱釜榪囩▼錛?/p>
銆銆1錛夋柊榪炴帴鍒拌揪鏃訛紝master鏄鍚姩鏂扮殑瀛愯繘紼嬫帴綆¤榪炴帴榪樻槸鐢辯┖闂插瓙榪涚▼鐩存帴鎺ョ
銆銆2錛塵aster浣曟椂搴旇鍚姩鏂扮殑瀛愯繘紼?/p>
銆銆3錛夋柊榪炴帴鍒拌揪錛岀┖闂插瓙榪涚▼姹犱腑鐨勫瓙榪涚▼濡備綍绔炰簤鎺ョ璇ヨ繛鎺?/p>
銆銆4錛夊瓙榪涚▼寮傚父閫鍑烘椂錛宮aster濡備綍澶勭悊鏂拌繛鎺?/p>
銆銆5錛夌┖闂插瓙榪涚▼濡備綍閫夋嫨閫鍑烘椂闂達(dá)紙絀洪棽鏃墮棿鎴栨湇鍔℃鏁板簲鍐沖畾瀛愯繘紼嬬殑閫鍑猴級(jí)
銆銆6錛塵aster濡備綍鐭ラ亾鍚勪釜瀛愯繘紼嬬殑宸ヤ綔鐘舵侊紙鏄浜?jiǎn)杩樻槸娲荤潃錛燂級(jí)
銆銆7錛夊湪涓嶅仠姝㈡湇鍔$殑鍓嶆彁涓嬶紝鏈嶅姟瀛愯繘紼嬬▼搴忓鏋滃湪綰挎洿鏂般佸浣曟坊鍔犳柊鐨勬湇鍔°佸浣曞湪綰挎洿鏂板瓙榪涚▼閰嶇疆
銆銆8錛夊浣曞噺灝戞墍鏈夊瓙榪涚▼涓巑aster涔嬮棿鐨勯氳嬈℃暟浠庤岄檷浣巑aster鐨勮礋杞?/p>
銆銆鍥涖佹祦紼嬪浘
銆銆1)銆 master涓昏繘紼嬫祦紼嬪浘
銆銆
銆銆鍥?--master榪涚▼嫻佺▼鍥?/p>
銆銆Postifx 涓殑 master 涓昏繘紼嬩笌鍚勪釜瀛愯繘紼嬩箣闂寸殑IPC閫氳鏂瑰紡涓虹閬擄紝鎵浠ョ閬撶殑涓暟涓庡瓙榪涚▼鏁版槸鎴愭姣旂殑銆傚鏋滅閬撲腑鏂紝鍒?master 璁や負(fù)璇ョ閬撴墍瀵瑰簲鐨勫瓙榪涚▼宸茬粡閫鍑猴紝濡傛灉鏄紓甯擱鍑猴紝master榪橀渶瑕佹爣璁拌鏈嶅姟綾誨瓙榪涚▼姹犱互闃叉璇ョ被瀛愯繘紼嬪紓甯擱鍑洪綣佽屽惎鍔ㄤ篃寮傚父棰戠箒錛堝鏋滃瓙榪涚▼鍚姩榪囦簬棰戠箒鍒欎細(xì)緇欐搷浣滅郴緇熼犳垚宸ㄥぇ璐熻澆錛夛紱鍙﹀錛屽鏋滄煇綾繪湇鍔$殑瀛愯繘紼嬪湪鏈嶅姟絎竴涓繛鎺ユ椂灝卞紓甯擱鍑猴紝鍒檓aster璁や負(fù)璇ユ湇鍔℃湁鍙兘鏄笉鍙敤鐨勶紝鎵浠ュ綋鏈夋柊鐨勮繛鎺ュ啀鍒拌揪鏃跺氨浼?xì)鍤g榪熷惎鍔ㄨ鏈嶅姟瀛愯繘紼嬨?/p>
銆銆褰撴湇鍔″瓙榪涚▼姹犱腑鏈夌┖闂插瓙榪涚▼鏃訛紝master渚夸細(xì)鎶婅鏈嶅姟绔彛鐨勭洃鍚潈璁╁嚭錛屼粠鑰岃鏈嶅姟鐨勭┖闂插瓙榪涚▼鍦ㄨ鏈嶅姟绔彛涓婃帴鏀舵柊鐨勮繛鎺ャ傚綋鏌愪釜瀛愯繘紼嬭幏寰楁柊鐨勮繛鎺ュ悗渚夸細(xì)绔嬪嵆閫氱煡master鍏跺凡緇忓浜庡繖鐘舵侊紝master渚跨珛鍗蟲(chóng)煡鎵捐鏈嶅姟鐨勫瓙榪涚▼榪涚▼姹犺繕鏈夋棤絀洪棽瀛愯繘紼嬶紝濡傛灉鏈夊垯master渚濈劧涓嶄細(xì)鎺ョ璇ユ湇鍔$鍙g殑鐩戝惉浠誨姟錛涘鏋滄病鏈変簡(jiǎn)錛屽垯master绔嬪嵆鎺ョ璇ユ湇鍔$鍙g殑鐩戝惉浠誨姟錛屽綋鏈夋柊鐨勮繛鎺ュ埌杈炬椂錛宮aster鍏堟鏌ユ湁娌℃湁璇ユ湇鍔$殑絀洪棽榪涚▼錛岃嫢鏈変究璁╁嚭璇ユ湇鍔$鍙g殑鐩戝惉鏉冿紝鑻ユ病鏈変究浼?xì)鍚姩鏂扮殑瀛悩q涚▼錛岀劧鍚庤鍑虹洃鍚潈銆?/p>
銆銆2)銆 鏈嶅姟瀛愯繘紼嬫祦紼嬪浘
銆銆
銆銆鍥?--瀛愯繘紼嬫祦紼嬪浘
銆銆鍦╩aster涓昏繘紼嬪垰鍚姩鏃訛紝鍥犱負(fù)娌℃湁浠諱綍鏈嶅姟璇鋒眰錛屾墍浠ュ瓙榪涚▼鏄笉闅弇aster涓璧峰惎鍔ㄧ殑錛屾鏃舵墍鏈夋湇鍔$鍙g殑鐩戞帶宸ヤ綔鏄敱master緇熶竴璐熻矗錛屽綋鏈夊鎴風(fēng)榪炴帴鍒拌揪鏃訛紝鏈嶅姟瀛愯繘紼嬫墠鐢眒aster鍚姩錛岃繘鑰屾帴鏀惰鏂拌繛鎺ワ紝鍦ㄨ繘涓姝ュ鐞嗗鎴風(fēng)璇鋒眰鍓嶏紝瀛愯繘紼嬪繀欏昏master榪涚▼鐭ラ亾瀹冨凡緇忓紑濮? 蹇?浜?jiǎn)锛屽ソ鐢眒aster鏉ュ喅瀹氭槸鍚﹀啀嬈℃帴綆¤鏈嶅姟绔彛鐨勭洃鎺т換鍔★紝鎵浠ュ瓙榪涚▼棣栧厛鍚憁aster鍙戦佲滃繖鈥濇秷鎭紝鐒跺悗鎵嶅紑濮嬫帴鏀跺茍澶勭悊璇ュ鎴風(fēng)璇鋒眰錛屽綋瀛愯繘紼嬪畬鎴愪簡(jiǎn)瀵硅瀹㈡埛绔殑璇鋒眰浠誨姟鍚庯紝闇鍚憁aster鍙戦佲滅┖闂測(cè)濇秷鎭紝浠ヨ〃鏄庤嚜宸卞張鍙互緇х畫(huà)澶勭悊鏂扮殑瀹㈡埛绔繛鎺ヤ換鍔′簡(jiǎn)銆傝繖涓鈥滃繖鈥濅竴鈥滈棽鈥濅袱涓秷鎭紝渚夸綋鐜頒簡(jiǎn)鏈嶅姟瀛愯繘紼嬩笌master涓昏繘紼嬬殑鍗忎綔鐗圭偣銆?/p>
銆銆褰撶劧錛屾湇鍔″瓙榪涚▼鍙互閫夋嫨鍚堥傜殑閫鍑烘椂鏈猴細(xì)濡傛灉鑷繁鐨勬湇鍔℃鏁拌揪鍒伴厤緗殑闃鍊鹼紝鎴栬嚜宸辯┖闂叉椂闂磋揪鍒伴榾鍊鹼紝鎴栦笌master涓昏繘紼嬩箣闂寸殑IPC綆¢亾涓柇(涓鑸槸鐢眒aster鍋滄鏈嶅姟瑕佹眰鎵鏈夋湇鍔″瓙榪涚▼閫鍑烘椂鎴杕aster瑕佹眰鎵鏈夋湇鍔″瓙榪涚▼閲嶈閰嶇疆鏃惰屽紩璧風(fēng)殑)錛屽垯鏈嶅姟瀛愯繘紼嬩究搴旇緇撴潫榪愯浜?jiǎn)銆傝繖涓仠姝㈣繃紼嬶紝涓鏂歸潰浣撶幇浜?jiǎn)瀛悩q涚▼涓巑aster涓昏繘紼嬩箣闂寸殑鍗忎綔鐗圭偣錛屽彟涓鏂歸潰涔熶綋鐜頒簡(jiǎn)瀛愯繘紼嬪崐椹葷暀鐨勭壒鐐癸紝浠庤屼綋鐜板瓙榪涚▼榪涚▼姹犵殑鍗婇┗鐣欑壒鎬э紝榪欎竴鐗規(guī)х殑鏈澶уソ澶勫氨鏄細(xì)鎸夐渶鍒嗛厤錛屽綋璇鋒眰榪炴帴姣旇緝澶氭椂錛屾墍鍚姩榪愯鐨勫瓙榪涚▼灝卞錛屽綋璇鋒眰榪炴帴浠誨姟杈冨皯鏃訛紝鍙湁灝戞暟鐨勫瓙榪涚▼鍦ㄨ繍琛岋紝鍏跺畠鐨勯兘閫鍑轟簡(jiǎn)銆?/p>
銆銆3) 灝忕粨
銆銆浠ヤ笂浠庢暣浣撲笂浠嬬粛浜?jiǎn)Postfix鏈嶅姟鍣ㄦ鏋舵ā鍨嬩腑master涓昏繘紼嬩笌鏈嶅姟瀛愯繘紼嬬殑閫昏緫嫻佺▼鍥撅紝褰撶劧錛屽叾鍐呴儴瀹炵幇瑕佺偣涓庣粏鑺傝繙姣斾笂闈粙緇嶇殑瑕佸鏉傦紝鍙槸榪欎簺澶嶆潅灞傞潰鍒漢宸茬粡甯垜浠睆钄戒簡(jiǎn)錛屾垜浠墍瑕佸仛鐨勬槸鍦ㄦ鍩虹涓婂啓鍑?guó)檱忿q殑搴旂敤鏈嶅姟鏉ワ紝涓嬮潰綆瑕佷粙緇嶄簡(jiǎn)鍩轟簬Postfix鐨勬湇鍔″櫒妗嗘灦鏀歸犳娊璞$殑ACL搴撲腑鏈嶅姟鍣ㄧ▼搴忕殑寮鍙戞柟寮忥紝浠ヤ嬌澶у姣旇緝瀹規(guī)槗涓婃墜銆?/p>
銆銆浜斻佷簲縐嶆湇鍔″櫒妗嗘灦妯℃澘綆浠?/p>
銆銆瑕佹兂浣跨敤ACL鏈嶅姟鍣ㄦ鏋跺簱寮鍙戞湇鍔″櫒紼嬪簭錛岄鍏堜粙緇嶄袱涓釜灝忓悕璇嶏細(xì)acl_master鏈嶅姟鍣ㄤ富榪涚▼涓庢湇鍔″櫒妯℃澘銆俛cl_master鏈嶅姟鍣ㄤ富榪涚▼涓?Postfix涓殑master涓昏繘紼嬪姛鑳界浉浼鹼紝瀹冪殑涓昏浣滅敤鏄惎鍔ㄥ茍鎺у埗鎵鏈夌殑鏈嶅姟瀛愯繘紼嬶紝榪欎釜紼嬪簭涓嶇敤鎴戜滑鍐欙紝鏄疉CL鏈嶅姟鍣ㄦ鏋朵腑宸茬粡鍐欏ソ鐨勶紱鎵璋撴湇鍔″櫒妯℃澘錛屽氨鏄垜浠渶瑕佹牴鎹嚜宸辯殑闇瑕佷粠ACL鏈嶅姟鍣ㄦ鏋朵腑閫夋嫨涓縐嶆湇鍔″櫒妯″瀷(鍗蟲(chóng)湇鍔″櫒妯℃澘)錛岀劧鍚庡湪緙栧啓鏈嶅姟鍣ㄦ椂鎸夎鏈嶅姟鍣ㄦā鏉跨殑鏂瑰紡鍐欏嵆鍙備負(fù)浠涔堣繕瑕侀夋嫨鍚堥傜殑鏈嶅姟鍣ㄦ鏋舵ā鏉匡紵榪欐槸鍥犱負(fù)Postfix鏈韓灝辨彁渚涗簡(jiǎn)涓夌被鏈嶅姟鍣ㄥ簲鐢ㄥ艦寮?鍗曡繘紼嬪崟榪炴帴榪涚▼姹犮佸崟榪涚▼澶氳繛鎺ヨ繘紼嬫睜銆佽Е鍙戝櫒榪涚▼姹?錛岃繖涓夌被搴旂敤褰㈠紡渚垮垎鍒嬌鐢ㄤ簡(jiǎn)Postfix涓殑涓夌鏈嶅姟鍣ㄦā鏉匡紝姝ゅ錛孉CL涓張澧炲姞浜?jiǎn)涓たU嶆湇鍔″櫒搴旂敤褰㈠紡(澶氱嚎紼嬭繘紼嬫睜銆佸崟榪涚▼闈為樆濉炶繘紼嬫睜)銆備笅闈㈠垎鍒氨榪欎簲縐嶆湇鍔″櫒妗嗘灦妯℃澘涓涓鍋氱畝浠嬶細(xì)
銆銆1) 鍗曡繘紼嬪崟榪炴帴榪涚▼姹狅細(xì)鐢?acl_master 涓昏繘紼嬪惎鍔ㄥ涓繘紼嬬粍鎴愯繘紼嬫睜鎻愪緵鏌愮被鏈嶅姟錛屼絾姣忎釜榪涚▼姣忔鍙兘澶勭悊涓涓鎴風(fēng)榪炴帴璇鋒眰
銆銆2) 鍗曡繘紼嬪榪炴帴榪涚▼姹狅細(xì)鐢?acl_master 涓昏繘紼嬪惎鍔ㄥ涓繘紼嬬粍鎴愯繘紼嬫睜鎻愪緵鏌愮被鏈嶅姟錛岃屾瘡涓繘紼嬪彲浠ュ悓鏃跺鐞嗗涓鎴風(fēng)榪炴帴璇鋒眰
銆銆3) 瑙﹀彂鍣ㄨ繘紼嬫睜錛氱敱 acl_master 涓昏繘紼嬪惎鍔ㄥ涓繘紼嬬粍鎴愯繘紼嬫睜鎻愪緵瀹氭椂鍣ㄧ被鏈嶅姟(綾諱技浜嶶NIX涓殑cron)錛屽綋鏌愪釜瀹氭椂鍣ㄦ椂闂村埌杈炬椂錛屼究鐢變竴涓繘紼嬪紑濮嬭繍琛屽鐞嗕換鍔?/p>
銆銆4) 澶氱嚎紼嬭繘紼嬫睜錛氱敱 acl_master 涓昏繘紼嬪惎鍔ㄥ涓繘紼嬬粍鎴愯繘紼嬫睜鎻愪緵鏌愮被鏈嶅姟錛岃屾瘡涓繘紼嬫槸鐢卞涓嚎紼嬬粍鎴愶紝姣忎釜綰跨▼澶勭悊涓涓鎴風(fēng)榪炴帴璇鋒眰
銆銆5) 鍗曡繘紼嬮潪闃誨榪涚▼姹狅細(xì)鐢?acl_master 涓昏繘紼嬪惎鍔ㄥ涓繘紼嬬粍鎴愯繘紼嬫睜鎻愪緵鏌愮被鏈嶅姟錛屾瘡涓繘紼嬪彲浠ュ茍鍙戝鐞嗗涓繛鎺?綾諱技浜嶯ginx, Lighttpd, Squid, Ircd)錛岀敱浜庨噰鐢ㄩ潪闃誨鎶鏈紝璇ユā鍨嬫湇鍔″櫒鐨勫茍鍙戝鐞嗚兘鍔涘ぇ澶ф彁楂橈紝鍚屾椂緋葷粺璧勬簮娑堣椾篃鏈灝忥紱褰撶劧錛岃妯″瀷涓庡崟榪涚▼澶氳繛鎺ヨ繘紼嬫睜閲囩敤鐨勬妧鏈兘鏄潪闃誨鎶鏈紝浣嗚妯″瀷榪涜鏇村鐨勫簲鐢ㄥ皝瑁呬笌楂樼駭澶勭悊錛屼嬌緙栧啓闈為樆濉炵▼搴忔洿鍔犲鏄?/p>
銆銆浠ヤ笂浜旂鏈嶅姟鍣ㄦ柟寮忎腑錛岀敱浜庡彲浠ユ牴鎹渶瑕侀厤緗垚澶氫釜榪涚▼瀹炰緥錛屾墍浠ュ彲浠ュ厖鍒嗗湴鍒╃敤澶氭牳鐨勭郴緇熴傚叾涓紝絎?縐嶇殑榪愯鏁堢巼鏄渶楂樼殑錛屽綋鐒跺叾緙栫▼鐨勫鏉傚害瑕佹瘮鍏跺畠鐨勯珮錛岃岀1縐嶆槸鎵ц鏁堢巼鏈浣庣殑錛屽叾瀹炲畠涔熸槸鏈瀹夊叏鐨?鍦≒ostfix涓殑smtpd/smtp 絳夎繘紼嬪氨灞炰簬榪欎竴綾?錛岃岀浉瀵規(guī)潵璇達(dá)紝絎?縐嶅湪榪愯鏁堢巼涓庣紪鍐欏鏉傚害鏂歸潰鏄竴涓瘮杈冨ソ鐨勬姌琛鳳紝鎵浠ュ湪鍐欎竴鑸ф湇鍔″櫒鏃訛紝璇ユ湇鍔″櫒妯″瀷鏄綔鑰呮帹鑽愮殑鏂規(guī)錛屾澶栵紝絎?縐嶆柟妗堣繕鏈変竴涓ソ澶勶紝鍙互鍋氬埌瀵逛簬絀鴻繛鎺ヤ笉蹇呭崰鐢ㄧ嚎紼嬶紝榪欐牱涔熷ぇ澶ф彁渚涗簡(jiǎn)騫跺彂搴?鍗崇嚎紼嬫暟鍙互榪滃皬浜庤繛鎺ユ暟)銆?/p>
銆銆鍏佷嬌鐢ㄧ畝浠?/p>
銆銆鏈妭鏆備笉浠嬬粛鍏蜂綋鐨勭紪紼嬭繃紼嬶紝鍙槸浠嬬粛涓浜涢厤緗嬌鐢ㄨ繃紼嬨傚亣璁懼凡緇忓啓濂戒簡(jiǎn)鏈嶅姟鍣ㄧ▼搴忥細(xì)echo_server, 璇ョ▼搴忓彲浠ラ噰鐢ㄤ笂闈㈢殑 1), 2), 4), 5) 涓殑浠諱竴鏈嶅姟鍣ㄦā鍨嬫潵鍐欙紝鍋囪閲囩敤浜?jiǎn)绗?)縐嶏紱鍙﹀錛岃繕鍋囪錛歛cl_master絳夋墍鏈夋枃浠跺畨瑁呯殑鏍圭洰褰曚負(fù) /opt/acl/, 涓昏繘紼嬬▼搴?acl_master 鍙?echo_server 瀹夎鍦?/opt/acl/libexec/,銆 acl_master 涓葷▼搴忛厤緗枃浠跺畨瑁呭湪 /opt/acl/conf/錛宔cho_server 閰嶇疆鏂囦歡瀹夎鍦?/opt/acl/conf/service/, 鏃ュ織鏂囦歡鐩綍涓?/opt/acl/var/log/, 榪涚▼鍙鋒枃浠剁洰褰曚負(fù) /opt/acl/var/pid/銆傛瘮濡傦紝浣犺 echo_server 鐨勬湇鍔$鍙d負(fù) 6601錛屾湇鍔″湴鍧涓?127.0.0.1, 瀹冨彧鏄彁渚涚畝鍗曠殑 echo 鏈嶅姟銆?/p>
銆銆浣犲彲浠ヨ繍琛?/opt/acl/sh/start.sh 鑴氭湰鏉ュ惎鍔?acl_master 涓昏繘紼?鐢?ps -ef|grep acl_master 浼?xì)鐪嬪?acl_master 榪涚▼瀛樺湪 錛屼絾 ps -ef|grep echo_server 鍗存病鏈夊彂鐜板畠鐨勫瓨鍦?錛岀劧鍚庝綘鍦ㄤ竴涓猆nix緇堢涓?telnet 127.0.0.1 6601, 鍦ㄥ彟涓涓粓绔笂 ps -ef|grep echo_server 灝變細(xì)鍙戠幇鏈変竴涓?echo_server瀛愯繘紼嬩簡(jiǎn)錛岀劧鍚庡湪 telnet 6601 鐨勭粓绔笂闅忎究杈撳叆涓浜涘瓧絎︿覆錛屼究浼?xì)绔嬪崨_緱鍒板洖澶嶏紝鍏抽棴璇?telnet 榪炴帴錛岀敤 ps -ef|grep echo_server 浼?xì)鍙戠幇璇q涚▼渚濈劧瀛樺湪錛屽綋鍐嶆 telnet 127.0.0.1 6601 鏃訛紝璇cho_server榪涚▼鍙堢戶緇負(fù)鏂拌繛鎺ユ彁渚涙湇鍔′簡(jiǎn)銆傚彲浠ヨ瘯鐫澶氬紑鍑犱釜緇堢鍚屾椂 telnet 127.0.0.1 6601錛岀湅鐪嬭繍琛屾晥鏋滃浣曪紵
銆銆娉ㄦ剰錛屾湇鍔″瓙榪涚▼鐨勯厤緗枃浠舵牸寮忛渶瑕佷笌鍏舵墍閲囩敤鐨勬ā鏉跨被鍨嬩竴鑷達(dá)紱榪涚▼姹犱腑鏈澶ц繘紼嬩釜鏁般佽繘紼嬩腑綰跨▼姹犳渶澶х嚎紼嬩釜鏁般佽繘紼嬫渶澶ф湇鍔℃鏁般佺┖闂叉椂闂寸瓑閮芥槸鍙互浠ラ厤緗枃浠朵腑鎸囧畾鐨勩?/p>
銆銆postfix鏄疻ietse Venema鍦↖BM鐨凣PL鍗忚涔嬩笅寮鍙戠殑MTA錛堥偖浠朵紶杈撲唬鐞嗭級(jí)杞歡銆備笅闈竴孌佃瘽鎽樿嚜postfix鐨勫畼鏂圭珯鐐癸紙http://www.postfix.org錛夛細(xì)鈥減ostfix鏄疻ietse Venema鎯寵涓轟嬌鐢ㄦ渶騫挎硾鐨剆endmail鎻愪緵鏇夸唬鍝佺殑涓涓皾璇曘傚湪Internet涓栫晫涓紝澶ч儴鍒嗙殑鐢?shù)瀛愰偖錃g閮芥槸閫氳繃sendmail鏉ユ姇閫掔殑錛屽ぇ綰︽湁100涓囩敤鎴蜂嬌鐢╯endmail錛屾瘡澶╂姇閫掍笂浜垮皝閭歡銆傝繖鐪熷疄涓涓浜哄悆鎯婄殑鏁板瓧銆侾ostfix璇曞浘鏇村揩銆佹洿瀹規(guī)槗綆$悊銆佹洿瀹夊叏錛屽悓鏃惰繕?shù)笌sendmail淇濇寔瓚沖鐨勫吋瀹規(guī)с傗?/p>
1.1 postfix鐨勭壒鐐?/p>
1. postfix鏄厤璐圭殑錛?/p>
銆銆postfix鎯寵浣滅敤鐨勮寖鍥存槸騫垮ぇ鐨処nternet鐢ㄦ埛錛岃瘯鍥懼獎(jiǎng)鍝嶅ぇ澶氭暟鐨処nternet涓婄殑鐢?shù)瀛愰偖錃g緋葷粺錛屽洜姝ゅ畠鏄厤璐圭殑銆?/p>
2. 鏇村揩錛?/p>
銆銆postfix鍦ㄦц兘涓婂ぇ綰︽瘮sendmail蹇笁鍊嶃備竴閮ㄨ繍琛宲ostfix鐨勫彴寮廝C姣忓ぉ鍙互鏀跺彂涓婄櫨涓囧皝閭歡銆?/p>
3. 鍏煎鎬уソ:
銆銆postfix鏄痵endmail鍏煎鐨勶紝浠庤屼嬌sendmail鐢ㄦ埛鍙互寰堟柟渚垮湴榪佺Щ鍒皃ostfix銆侾ostfix鏀寔/var[/spool]/mail銆?etc/aliases銆?NIS銆佸拰 ~/.forward 鏂囦歡銆?/p>
4. 鏇村仴澹細(xì)
銆銆postfix琚璁℃垚鍦ㄩ噸璐熻嵎涔嬩笅浠嶇劧鍙互姝e父宸ヤ綔銆傚綋緋葷粺榪愯瓚呭嚭浜?jiǎn)鍙敤鐨勫唴瀛樻垨纾佺洏绌洪棿鏃跺Q宲ostfix浼?xì)鑷姩鍑彏畱杩愯杩浗E嬬殑鏁扮洰銆傚綋澶勭悊鐨勯偖浠舵暟鐩闀挎椂錛宲ostfix榪愯鐨勮繘紼嬩笉浼?xì)璺熺潃澧炲姞銆?/p>
5. 鏇寸伒媧伙細(xì)
銆銆postfix鏄敱瓚呰繃涓鎵撶殑灝忕▼搴忕粍鎴愮殑錛屾瘡涓▼搴忓畬鎴愮壒瀹氱殑鍔熻兘銆備綘鍙互閫氳繃閰嶇疆鏂囦歡璁劇疆姣忎釜紼嬪簭鐨勮繍琛屽弬鏁般?/p>
6. 瀹夊叏鎬?/p>
銆銆postfix鍏鋒湁澶氬眰闃插盡緇撴瀯錛屽彲浠ユ湁鏁堝湴鎶靛盡鎭舵剰鍏ヤ鏡鑰呫傚澶у鏁扮殑postfix紼嬪簭鍙互榪愯鍦ㄨ緝浣庣殑鏉冮檺涔嬩笅錛屼笉鍙互閫氳繃緗戠粶璁塊棶瀹夊叏鎬х浉鍏崇殑鏈湴鎶曢掔▼搴忕瓑絳夈?/p>
1.2 postfix鐨勬諱綋緇撴瀯
銆銆postfix鐢卞崄鍑犱釜鍏鋒湁涓嶅悓鍔熻兘鐨勫崐椹葷暀榪涚▼緇勬垚錛屽茍涓斿湪榪欎簺榪涚▼涓茍鏃犵壒瀹氱殑榪涚▼闂寸埗瀛愬叧緋匯傛煇涓涓壒瀹氱殑榪涚▼鍙互涓哄叾浠栬繘紼嬫彁渚涚壒瀹氱殑鏈嶅姟銆?/p>
銆銆澶у鏁扮殑postfix榪涚▼鐢變竴涓繘紼嬬粺涓榪涜綆$悊錛岃榪涚▼璐熻矗鍦ㄩ渶瑕佺殑鏃跺欒皟鐢ㄥ叾浠栬繘紼嬶紝榪欎釜綆$悊榪涚▼灝辨槸master榪涚▼銆傝榪涚▼涔熸槸涓涓悗鍙扮▼搴忋?/p>
銆銆榪欎簺postfix榪涚▼鏄彲浠ラ厤緗殑錛屾垜浠彲浠ラ厤緗瘡涓繘紼嬭繍琛岀殑鏁扮洰錛屽彲閲嶇敤鐨勬鏁幫紝鐢熷瓨鐨勬椂闂寸瓑絳夈傞氳繃鐏墊椿鐨勯厤緗壒鎬у彲浠ヤ嬌鏁翠釜緋葷粺鐨勮繍琛屾垚鏈ぇ澶ч檷浣庛?/p>
1.2.1 postfix鐨勯偖浠墮槦鍒楋紙mail queues錛?/p>
銆銆postfix鏈夊洓縐嶄笉鍚岀殑閭歡闃熷垪錛屽茍涓旂敱闃熷垪綆$悊榪涚▼緇熶竴榪涜綆$悊錛?/p>
1錛?maildrop錛氭湰鍦伴偖浠舵斁緗湪maildrop涓紝鍚屾椂涔熻鎷瘋礉鍒癷ncoming涓?/p>
2錛?incoming錛氭斁緗鍦ㄥ埌杈炬垨闃熷垪綆$悊榪涚▼灝氭湭鍙戠幇鐨勯偖浠躲?/p>
3錛?active錛氭斁緗槦鍒楃鐞嗚繘紼嬪凡緇忔墦寮浜?jiǎn)迤堟鍑嗗鎶曢掔殑閭歡錛岃闃熷垪鏈夐暱搴︾殑闄愬埗銆?/p>
4錛?deferred錛氭斁緗笉鑳借鎶曢掔殑閭歡銆?/p>
銆銆闃熷垪綆$悊榪涚▼浠呬粎鍦ㄥ唴瀛樹(shù)腑淇濈暀active闃熷垪錛屽茍涓斿璇ラ槦鍒楃殑闀垮害榪涜闄愬埗錛岃繖鏍峰仛鐨勭洰鐨勬槸涓轟簡(jiǎn)閬垮厤榪涚▼榪愯鍐呭瓨瓚呰繃緋葷粺鐨勫彲鐢ㄥ唴瀛樸?/p>
1.2.2 postfix瀵歸偖浠墮鏆寸殑澶勭悊
銆銆褰撴湁鏂扮殑閭歡鍒拌揪鏃訛紝postfix榪涜鍒濆鍖栵紝鍒濆鍖栨椂postfix鍚屾椂鍙帴鍙椾袱涓茍鍙戠殑榪炴帴璇鋒眰銆傚綋閭歡鎶曢掓垚鍔熷悗錛屽彲浠ュ悓鏃舵帴鍙楃殑騫跺彂榪炴帴鐨勬暟鐩氨浼?xì)缂撴參鍦板闀胯嚦涓涓彲浠ラ厤緗殑鍊箋傚綋鐒?dòng)灱屽鏋湗q欐椂緋葷粺鐨勬秷鑰楀凡鍒拌揪緋葷粺涓嶈兘鎵垮彈鐨勮礋杞藉氨浼?xì)鍋滄澧為曆潃傝繕鏈変竴縐嶆儏鍐墊椂錛屽鏋減ostfix鍦ㄥ鐞嗛偖浠惰繃紼嬩腑閬囧埌浜?jiǎn)闂锛屽垯璇ュ間細(xì)寮濮嬮檷浣庛?/p>
銆銆褰撴帴鏀跺埌鐨勬柊閭歡鐨勬暟閲忚秴榪噋ostfix鐨勬姇閫掕兘鍔涙椂錛宲ostfix浼?xì)鏆傛椂鍋滄鎶曢抎eferred闃熷垪涓殑閭歡鑰屽幓澶勭悊鏂版帴鏀跺埌鐨勯偖浠躲傝繖鏄洜涓哄鐞嗘柊閭歡鐨勫歡榪熻灝忎簬澶勭悊deferred闃熷垪涓殑閭歡銆侾ostfix浼?xì)鍦ńI洪棽鏃跺鐞哾eferred涓殑閭歡銆?/p>
1.2.3 postfix瀵規(guī)棤娉曟姇閫掔殑閭歡鐨勫鐞?/p>
銆銆褰撲竴灝侀偖浠剁涓嬈′笉鑳芥垚鍔熸姇閫掓椂錛宲ostfix浼?xì)缁欒閭欢鑴?chuàng)涓婁竴涓皢鏉ョ殑鏃墮棿閭エ銆傞偖浠墮槦鍒楃鐞嗙▼搴忎細(xì)蹇界暐璐存湁灝嗘潵鏃墮棿閭エ鐨勯偖浠躲傛椂闂撮偖紲ㄥ埌鏈熸椂錛宲ostfix浼?xì)灏濊瘯鍐嶅璇ラ偖錃g榪涜涓嬈℃姇閫掞紝濡傛灉榪欐鎶曢掑啀嬈″け璐ワ紝postfix灝辯粰璇ラ偖浠惰創(chuàng)涓婁竴涓袱鍊嶄簬涓婃鏃墮棿閭エ鐨勬椂闂撮偖紲紝絳夋椂闂撮偖紲ㄥ埌鏈熸椂鍐嶆榪涜鎶曢掞紝渚濇綾繪帹銆傚綋鐒?dòng)灱尵l忚繃涓瀹氭鏁扮殑灝濊瘯涔嬪悗錛宲ostfix浼?xì)鏀惧純瀵硅閭欢鐨勬姇閫掞紝榪斿洖涓涓敊璇俊鎭粰璇ラ偖浠剁殑鍙戜歡浜恒?/p>
1.2.4 postfix瀵逛笉鍙埌杈劇殑鐩殑鍦伴偖浠剁殑澶勭悊
銆銆postfix浼?xì)鍦ㄥ唴瀛樹(shù)腑淇濆瓨?shù)竴涓湁闀垮害闄愬埗鐨勫綋鍓嶄笉鍙埌杈劇殑鍦板潃鍒楄〃銆傝繖鏍峰氨閬垮厤浜?jiǎn)瀵归偅浜涚洰鐨勫滎C負(fù)褰撳墠涓嶅彲鍒拌揪鍦板潃鐨勯偖浠剁殑鎶曢掑皾璇曘備粠鑰屽ぇ澶ф彁楂樹(shù)簡(jiǎn)緋葷粺鐨勬ц兘銆?/p>
1.2.5 postfix鐨勫畨鍏ㄦ?/p>
銆銆postfix閫氳繃涓緋誨垪鐨勬帾鏂芥潵鎻愰珮緋葷粺鐨勫畨鍏ㄦэ紝榪欎簺鎺柦鍖呮嫭錛?/p>
1錛?鍔ㄦ佸垎閰嶅唴瀛橈紝浠庤岄槻姝㈢郴緇熺紦鍐插尯婧㈠嚭錛?/p>
2錛?鎶婂ぇ閭歡鍒嗗壊鎴愬嚑鍧楄繘琛屽鐞嗭紝鎶曢掓椂鍐嶉噸緇勶紱
3錛?Postfix鐨勫悇縐嶈繘紼嬩笉鍦ㄥ叾浠栫敤鎴瘋繘紼嬬殑鎺у埗涔嬩笅榪愯錛岃屾槸榪愯鍦ㄩ┗鐣欎富榪涚▼master鐨勬帶鍒朵箣涓嬶紝涓庡叾浠栫敤鎴瘋繘紼嬫棤鐖跺瓙鍏崇郴錛屾墍鏈夋湁寰堝ソ鐨勭粷緙樻с?/p>
4錛?Postfix鐨勯槦鍒楁枃浠舵湁鍏剁壒孌婄殑鏍煎紡錛屽彧鑳借postfix鏈韓璇嗗埆錛?/p>
浜屻?postfix瀵歸偖浠剁殑澶勭悊榪囩▼
2.1 鎺ユ敹閭歡鐨勮繃紼?br />銆銆
銆銆褰損ostfix鎺ユ敹鍒頒竴灝佹柊閭歡鏃訛紝鏂伴偖浠墮閫夊湪incoming闃熷垪澶勫仠鐣欙紝鐒跺悗閽堝涓嶅悓鐨勬儏鍐佃繘琛屼笉鍚岀殑澶勭悊錛?/p>
1錛庡浜庢潵鑷簬鏈湴鐨勯偖浠訛細(xì)sendmail榪涚▼璐熻矗鎺ユ敹鏉ヨ嚜鏈湴鐨勯偖浠舵斁鍦╩aildrop闃熷垪涓紝鐒跺悗pickup榪涚▼瀵筸aildrop涓殑閭歡榪涜瀹屾暣鎬ф嫻嬨俶aildrop鐩綍鐨勬潈闄愬繀欏昏緗負(fù)鏌愪竴鐢ㄦ埛涓嶈兘鍒犻櫎鍏朵粬鐢ㄦ埛鐨勯偖浠躲?/p>
2錛庡浜庢潵鑷簬緗戠粶鐨勯偖浠訛細(xì)smtpd榪涚▼璐熻矗鎺ユ敹鏉ヨ嚜浜庣綉緇滅殑閭歡錛屽茍涓旇繘琛屽畨鍏ㄦф嫻嬨傚彲浠ラ氳繃UCE錛坲nsolicited commercial email錛夋帶鍒秙mtpd鐨勮涓恒?/p>
3錛庣敱postfix榪涚▼浜х敓鐨勯偖浠訛細(xì)榪欐槸涓轟簡(jiǎn)灝嗕笉鍙姇閫掔殑淇℃伅榪斿洖緇欏彂浠朵漢銆傝繖浜涢偖浠舵槸鐢眀ounce鍚庡彴紼嬪簭浜х敓鐨勩?/p>
5錛?鐢眕ostfix鑷繁浜х敓鐨勯偖浠訛細(xì)鎻愮ずpostmaster錛堜篃鍗硃ostfix綆$悊鍛橈級(jí)postfix榪愯榪囩▼涓嚭鐜扮殑闂銆傦紙濡係MTP鍗忚闂錛岃繚鍙峌CE瑙勫垯鐨勮褰曠瓑絳夈傦級(jí)
銆銆鍏充簬cleanup鍚庡彴紼嬪簭鐨勮鏄庯細(xì)cleanup鏄鏂伴偖浠惰繘琛屽鐞嗙殑鏈鍚庝竴閬撳伐搴忥紝瀹冨鏂伴偖浠惰繘琛屼互涓嬬殑澶勭悊錛氭坊鍔犱俊澶翠腑涓㈠け鐨凢orm淇℃伅錛涗負(fù)灝嗗湴鍧閲嶅啓鎴愭爣鍑嗙殑user@fully.qualified.domain鏍煎紡榪涜鎺掑垪錛涢噸淇″ご涓娊鍑烘敹浠朵漢鐨勫湴鍧錛涘皢閭歡鎶曞叆incoming闃熷垪涓紝騫惰姹傞偖浠墮槦鍒楃鐞嗚繘紼嬪鐞嗚閭歡錛涜姹倀rivial-rewrite榪涚▼灝嗗湴鍧杞崲鎴愭爣鍑嗙殑user@fully.qualified.domain鏍煎紡銆?/p>
2.2 鎶曢掗偖浠剁殑榪囩▼
銆銆鏂伴偖浠朵竴鏃﹀埌杈緄ncoming闃熷垪錛屼笅涓姝ュ氨鏄紑濮嬫姇閫掗偖浠訛紝postfix鎶曢掗偖浠舵椂鐨勫鐞嗚繃紼嬪鍥句笁鎵紺恒傜浉鍏崇殑璇存槑濡備笅錛?/p>
銆銆閭歡闃熷垪綆$悊榪涚▼鏄暣涓猵ostfix閭歡緋葷粺鐨勫績(jī)鑴忋傚畠鍜宭ocal銆乻mtp銆乸ipe絳夋姇閫掍唬鐞嗙浉鑱旂郴錛屽皢鍖呭惈鏈夐槦鍒楁枃浠惰礬寰勪俊鎭侀偖浠跺彂浠朵漢鍦板潃銆侀偖浠舵敹浠朵漢鍦板潃鐨勬姇閫掕姹傚彂閫佺粰鎶曢掍唬鐞嗐傞槦鍒楃鐞嗚繘紼嬬淮鎶ょ潃涓涓猟eferred闃熷垪錛岄偅浜涙棤娉曟姇閫掔殑閭歡琚姇閫掑埌璇ラ槦鍒椾腑銆傞櫎姝や箣澶栵紝闃熷垪綆$悊榪涚▼榪樼淮鎶ょ潃涓涓猘ctive闃熷垪錛岃闃熷垪涓殑閭歡鏁扮洰鏄湁闄愬埗鐨勶紝榪欐槸涓轟簡(jiǎn)闃叉鍦ㄨ礋杞藉お澶ф椂鍐呭瓨婧㈠嚭銆傞偖浠墮槦鍒楃鐞嗙▼搴忚繕璐熻矗灝嗘敹浠朵漢鍦板潃鍦╮elocated琛ㄤ腑鍒楀嚭鐨勯偖浠惰繑鍥炵粰鍙戜歡浜猴紝璇ヨ〃鍖呭惈鏃犳晥鐨勬敹浠朵漢鍦板潃銆?/p>
銆銆濡傛灉閭歡闃熷垪綆$悊榪涚▼璇鋒眰錛宺ewrite鍚庡彴紼嬪簭瀵規(guī)敹浠朵漢鍦板潃榪涜瑙f瀽銆備絾鏄己鐪佸湴錛宺ewrite鍙閭歡鏀朵歡浜烘槸鏈湴鐨勮繕鏄繙紼嬬殑榪涜鍖哄埆銆?/p>
銆銆濡傛灉閭歡瀵逛綘綆$悊榪涚▼璇鋒眰錛宐ounce鍚庡彴紼嬪簭鍙互鐢熸垚涓涓偖浠朵笉鍙姇閫掔殑鎶ュ憡銆?/p>
銆銆鏈湴鎶曢掍唬鐞唋ocal榪涚▼鍙互鐞嗚В綾諱技UNIX椋庢牸鐨勯偖綆憋紝sendmail椋庢牸鐨勭郴緇熷埆鍚嶆暟鎹簱鍜宻endmail椋庢牸鐨?forward鏂囦歡銆傚彲浠ュ悓鏃惰繍琛屽涓猯ocal榪涚▼錛屼絾鏄鍚屼竴涓敤鎴風(fēng)殑騫跺彂鎶曢掕繘紼嬫暟鐩槸鏈夐檺鍒剁殑銆備綘鍙互閰嶇疆local灝嗛偖浠舵姇閫掑埌鐢ㄦ埛鐨勫涓葷洰褰曪紝涔熷彲浠ラ厤緗甽ocal灝嗛偖浠跺彂閫佺粰涓涓閮ㄥ懡浠わ紝濡傛祦琛岀殑鏈湴鎶曢掍唬鐞唒rocmail銆傚湪嫻佽鐨刲inux鍙戣鐗堟湰RedHat涓紝鎴戜滑灝變嬌鐢╬rocmail浣滀負(fù)鏈緇堢殑鏈湴鎶曢掍唬鐞嗐?/p>
銆銆榪滅▼鎶曢掍唬鐞哠MTP榪涚▼鏍規(guī)嵁鏀朵歡浜哄湴鍧鏌ヨ涓涓猄MTP鏈嶅姟鍣ㄥ垪琛紝鎸夌収欏哄簭榪炴帴姣忎竴涓猄MTP鏈嶅姟鍣紝鏍規(guī)嵁鎬ц兘瀵硅琛ㄨ繘琛屾帓搴忋傚湪緋葷粺璐熻澆澶ぇ鏃訛紝鍙互鏈夋暟涓茍鍙戠殑SMTP榪涚▼鍚屾椂榪愯銆?/p>
銆銆pipe鏄敤浜嶶UCP鍗忚鐨勬姇閫掍唬鐞嗐?