網路開展事業或在網路創業賺錢的第一步:【架設24小時賺錢網站主機】比網頁設計更優先!

感謝您造訪 Linux主機伺服器架設技術基地。 你可進入替你架設主機.影片教你維護頁面,詳細瞭解Linux主機架設及相關技術維護影片教學(完整配套措施),有主機馬上可以架設網站營運,完全無限制!

租用不如自有主機!聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多!完全沒有版權問題,超強『防駭客攻擊與入侵』及安全防護可以讓你無後顧之憂。

                    架設主機.影片教你維護: http://por.tw/linux/new-E_learning/index.php

Linux主機伺服器架設技術基地  維護團隊  敬上
瀏覽模式: 普通 | 列表
你要儘快擁有『Linux主機』讓他營運起來幫你賺錢!

自己用體力與時間賺錢太辛苦啦!
每個人一天都是24小時,休息與睡覺就要八小時,更何況不可能一整年都不休假....
用『Linux主機』幫你24小時賺錢(一年365天無修→你要怎樣找到更勤勞的賺錢方式?)
再說,距離是一個難以解決的難題(唯有網路無距離,能把商品賣到任何國家)
就算自己沒有商品,掛Google或聯盟行銷的商品也能賺到佣金與獎金
管他是那裡的人,只要『訪客』有點擊你就能有收入

我時常在想,養一個兒子或女兒就有可以將來養你一輩子嗎?
不!女而會嫁出去,而兒子要養老婆、還要養孫子、還要買房子、買車子、替孫子繳學費......
這就是台語講的『世傳世』一代傳一代(物種繁衍的宿命)不能怪也不能奢望。

我寧願養一台『Linux主機』來當自己後半輩子的依靠。
不管你多老,只要你能打鍵盤,就能賺錢(還怕老了或病了就沒有收入?)

年輕時就投入經營網路,有一台機器幫你賺錢(你一定會比較輕鬆)
經過幾年後你會發現:你的網站累積多少文章、照片、影片(數位內容)
那些(數位內容)都是你的網路資源,你也會發現有多少商機是因為你有網路
所以人家找上你,機會找上你,財富找上你(除非你不去經營他)

attachments/201201/0950512516.jpg

我時常出國,跟我一起出國的朋友都羨慕我,因為不管出國多久,旅遊多少天(我都是:天天有收入)你選擇怎樣的賺錢方式,就決定你要過怎樣的生活!
因為我選擇『網路事業』,只要帶著筆電或平版電腦,走道那裡都能遙控我的事業。


如何使用Linux架設NAT主機(Linux主機伺服器架設技術)

如何使用 Linux 來架設NAT主機,可以解決 IPv4 位址不足的現象。
目前所分配的 IPv4 Address 範圍有限,所建置的 NGN 專案無線 AP ,導致 IPv4 Address 不足。
而 IPv6 Address 尚未普及至全球,若單用 IPv6 Address 會造成某些點連線失敗,因此,我們仍建議可以建置 NAT 主機,以解決此一困境。

attachments/201304/8700375941.jpg

NAT主機基本概念:

 NAT 簡單來講,就是用 Linux Server 來架設一台 IP 分享器。
對外只需1個實體 IP ,對內卻可提供多組的 IP ,供整間電腦教室的電腦及網路設備,以虛擬 IP 上網,如同外面所賣的 IP 分享器一樣,它必須啟用 DHCP Server 以自動配送虛擬 IPv4 位址給終端設備。

Linux Server 的 NAT 功能,是利用 Netfilter 機制以 iptables指令達成的,它除了可以達成 IP 分享器的功能外,也可以鎖網路設備的 MAC 位置,令中毒的機器無法對外攻擊其他電腦。
詳細做法,請參考下文。

實作:

網卡設定

    * 一定要兩張網卡
          NAT 主機對 CPU 與 RAM 的要求不高,但是對網卡的要求較高,因此建議採用 INTEL 或 3COM 的網卡會較好,若真的有困難,至少要 RealTek 的 R8169(GB) 才可以。
          實體網卡的判別很簡單,打開終端機,把網路線插入,再下 dmesg 指令,若在訊息最下面看到「eth0: link becomes ready 」字樣,代表所插入的網卡介面是 eth0 。
          對外網卡使用實體 IPv4 位址
          對內網卡使用虛擬 IP 位址,網卡的設定值不得有 gateway 值
    * 依上述要求,主機網卡設定圖示如下


    * 修改 /etc/network/interfaces 內容示例如下
      root@nat:~# vi /etc/network/interfaces

autleth0 eth1
iface linet loopback

iface eth0 inet static
   address 163.26.108.132
   network 163.26.108.128
   netmask 255.255.255.128
   broadcast 163.26.108.255
   gateway 163.26.108.254

iface eth1 inet static
   address 192.168.1.1
   network 192.168.1.0
   netmask 255.255.255.0
   broadcast 192.168.1.255



啟動DHCP Server

    * 安裝 dhcp3-server 套件
      root@nat:# apt-get install dhcp3-server
    * 修改 /etc/default/dhcp3-server , 把要配送 ip 的網路卡代號寫入, 如下所例

INTERFACES="eth1"

    * Linux sqz 請注意,dhcp3-server 套件已改成 isc-dhcp-server (但安裝時仍是 apt-get install dhcp3-server)
          啟動程式可能變成 /etc/init.d/isc-dhcp-server
            root@dns:~# service isc-dhcp-server start|stop
          設定檔位置會變成 /etc/dhcp
          實際位置可以下指令
            root@dns:~# dpkg -L isc-dhcp-server 列出套件檔案列表得知
    * 修改 /etc/dhcp3/dhcpd.conf , 加至檔尾(以配送 192.168.1.0 為例)

# This is a very basic subnet declaration.
subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.51 192.168.1.200 ;
 option broadcast-address 192.168.1.255 ;
 option routers 192.168.1.1 ;
 option domain-name-servers 168.95.1.1, 168.95.192.1 ;
}

# 若要分配的是虛擬 IP, 這邊要手動額外加入網段
subnet 163.26.108.128 netmask 255.255.255.128 {

}


Linux sqz 記得改成 /etc/dhcp/dhcpd.conf



修改防火牆規則列

    * 修改 /etc/rc.local 下面所列的部分,皆是要修改的項目
      root@nat:~# vi /etc/rc.local

# 打開下面這四行
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
......
###-----------------------------------------------------###
# 設定外部網段 IP 及介面
###-----------------------------------------------------###
ech"Set external ......"
echo

# 不要忘了打開 FW_IFACE
FW_IP="163.26.108.132"
FW_IP_RANGE="163.26.108.128/25"
FW_IFACE="eth0"

###-----------------------------------------------------###
# 設定內部網段 IP 及介面
###-----------------------------------------------------###
ech"Set internal ......"
echo

LAN_IP="192.168.1.1"
LAN_IP_RANGE="192.168.1.0/24"
LAN_BCAST_ADRESS="192.168.1.255"
LAN_IFACE="eth1"

......

###-----------------------------------------------------###
# 打開 forward
###-----------------------------------------------------###
#ech"Enable ip_forward ......"
#echo

ech"1" > /proc/sys/net/ipv4/ip_forward

......

###-----------------------------------------------------###
# 啟動內部對外轉址
###-----------------------------------------------------###

$IPTABLES -t nat -A POSTROUTING -$FW_IFACE -j SNAT --to-source $FW_IP

    * 套用新規則列
      root@nat:~# service rc.local start
    * 檢查 NAT 是否已成功設定
      root@dns:~# iptables -t nat -L

    * 注意:改到此為止,只是啟動封包轉送功能,後續的通訊埠控管尚未處理。不過在南縣 NGN 的架構下,筆者建議只要做到此步驟就好,不必再設定通訊埠的控管,免得一些設備無法連線,反而成為網管的困擾。



通訊埠管制
不管制的作法


這個比較簡單,原 Linux 上的 /etc/rc.local 只要修改到可以轉送封包(虛擬 IP 可以上網),後面的規則保留不動,那就對了。


鎖通訊埠作法

    * 繼續修改規則列 /etc/rc.local
    * 維持 INPUT, OUTPUT, FORWARD 是開放,不必改,再把下面紅字的規則列加到範例中所示的位置

......
###-----------------------------------------------------###
# 啟動外部對內部轉址
###-----------------------------------------------------###
# 凡對 $FW_IP:8080 連線者, 則轉址至 192.168.1.3:80
#$IPTABLES -t nat -A PREROUTING -p tcp -d $FW_IP --dport 8080 -j DNAT --t192.168.1.3:80
###-----------------------------------------------------###

###-----------------------------------------------------###
# 拒絕某一內部 IP 使用某一通道
###-----------------------------------------------------###


#--------------------------------------------------------------------
# NAT對外連線鎖 TCP 埠,思考方向:不管進入封包,只管出去封包
# 被動式 ftp 在經過 port 21 協商後,開始傳資料時,會以本地端 1024:65535 對 ftp server:1024:65535溝通,只要限制
# 連線狀態為:「RELATED」及「ESTABLISHED」封包。即可避免 NAT 內電腦對外掃描,又可使用 FTP 服務
#--------------------------------------------------------------------
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 21 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 對外 SSH 連線
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 22 -j ACCEPT
# 對外 SMTP 寄信
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 25 -j ACCEPT
# 對外 DNS 查詢
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 53 -j ACCEPT
# 對外瀏覽網頁(含某些特定通報點採81埠)
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 80:81 -j ACCEPT
# POP3 收信
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 110 -j ACCEPT
# NTPDate 網路校時
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 123 -j ACCEPT
# HTTPS
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 443 -j ACCEPT
# VNC → TCP port range: 5900 ~ 5906
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 5900:5906 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 --dport 8080 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p tcp -s any/0 -j DROP

#--------------------------------------------------------------------
# UDP 埠的部分
#--------------------------------------------------------------------
# DNS查詢
$IPTABLES -A FORWARD -$FW_IFACE -p udp -s any/0 --dport 53 -j ACCEPT
# VOIP電話
$IPTABLES -A FORWARD -$FW_IFACE -p udp -s any/0 --dport 5060:5061 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p udp -s any/0 --dport 41000:41999 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p udp -s any/0 --dport 55000:65000 -j ACCEPT
$IPTABLES -A FORWARD -$FW_IFACE -p udp -s any/0 -j DROP


###-----------------------------------------------------###
# 拒絕外部 IP 連至內部 port 號
###-----------------------------------------------------###
......

虛擬主機(次網域)設定

虛擬主機(次網域)設定
虛擬主機這功能,可以為本台電腦底下某個 user 的個人網頁賦予正式的網址。
例如,我們可以把 http://por.tw/~【~的目錄名稱】/ 改成 http://【~的目錄名稱】.por.tw。在改造的過程要完成以下幾件事:

attachments/201304/2666978699.jpg

先在修改檔案 etc/bind/db.por.tw(你的網址)
 DNS Server 加一筆DNS 正解記錄:【【~的目錄名稱】.por.tw IN A 113.61.187.47】,與 dns.por.tw 共用相同的 IP。
例如: www.por.tw IN A 113.61.187.47


在 /etc/apache2/sites-available/ 加上 【~的目錄名稱】.por.tw 的站台資料,範例如下 :

建立檔案:【~的目錄名稱】wh2esites-available/【~的目錄名稱】wh2es

<VirtualHost 113.61.187.47>
ServerAdmin 【~的目錄名稱】@por.tw
ServerName 【~的目錄名稱】.por.tw
DocumentRoot /home/【~的目錄名稱】/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/【~的目錄名稱】/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddType application/x-httpd-php .php
</Directory>

</VirtualHost>

在 /etc/apache2/sites-enabled/ 底下做鍵結
root@dns: # cd /etc/apache2/sites-enabled/
root@dns: /etc/apache2/sites-enabled/ # ln -s /etc/apache2/sites-available/【~的目錄名稱】wh2es

最後重新啟動 DNS 及 Apache2 Server 啟用新設定值
root@dns: # /etc/init.d/bind9 restart
root@dns: # /etc/init.d/apache2 restart

----------------------------------------------------------------------------------------------------

【PHP網頁開啟錯誤的解決方法】Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 7905 bytes) in

總教頭您好:
我網站架設後,出現:Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 7905 bytes) in

PHP網頁開啟錯誤(無法正確顯示)

請問總教頭我該如何處理?


總教頭回覆:
原因:
容許記憶體大小錯誤(容許記憶體不夠大)所產生的錯誤
致命錯誤:容許記憶體大小XXXXXXXX位元組用盡(嘗試配置XXXX位元組)

解決方法,如下:


1.請修改修改 php.ini

php.ini在Linux主機下的路徑:

 /etc/php5/apache2/php.ini

請用搜尋找到以下字串:

  memory_limit =

你會找到以下字串:
memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)

//找到這行原16M修改為32M

memory_limit = 32M

2.重新啟動apache2

語法:
service apache2 restart


=======================================================
『將軍』你是武藝高強?膽識過人?精通騎射?您生錯時代啦!
『戰馬』你是汗血寶馬?善奔能越?躍馬中原?此戰場沒有你的舞台!
開店因為房屋很貴買不起,所以先租(等賺錢一定買下來!)
網路開店,一台Linux主機才兩萬五千元,誰都買得起!
租虛擬主機繳年租金、限制空間大小、限制語法、限制流量......
如此綁手綁腳的經營網路事業,還能有何大作為?
您的客戶資料庫(哈哈!被人家看光光啦!)
租虛擬主機,無隱密可言(主機管理業者擁有最高權限)
租用者就像『裸體』展示於人家的目光下
『商業機密』一詞,跟你的距離是無限的遙遠!
------------------------------------------------------------
大家都知道網路創業的好處:
1.初期建置網站金額較低,甚至零成本。
2.初期人事、水電成本較低。
3.網路店面比較沒有曝光的地區限制(除非產品、物流、語言的限制)。
4.消費者可以在任何時間瀏覽與選購商品(24小時營業)。
5.初期可採用眾多的網路平台,免費宣傳、曝光方式,之後再採用付費的方式,提高效益。
6.即使沒有成功,成本損失也較低。


想要網路創業自動賺錢,你應該具備那些專業技能呢?

那座而言不如起而行,如何開始您的第一步行動呢?

1.先評估自己會什麼網路技能?不會那些網路技能?
將自己的優勢寫下來,也將自己需要進修的專業技能逐一記錄下來

2.找到您需要的課程(利用下班時間,努力精研)
最好是影片課程,不要只是一般書店的書籍或網路電子書
(因為圖片與文字根本學習效率不好,無法有效迅速學會,學習中有問題要問誰?)
實際網路經營時發生網站語法錯誤或網站被駭客入侵!
那您最好有個專業『會程式語言與架設主機』的老師可以免費技術諮詢
不然,一發生問題,您的網路事業就停擺了,網站一停就無收入!
(就好像上班放無薪假一樣....悽慘!)。
有甚至網站資料全毀,資料庫也出問題,你要在第一時間內就能快速修護!
這一點你可要小心!網路創業絕對要有:技術諮詢!
迅速回覆的專業老師(或專業技術顧問)。
不然,就像大海裡頭的孤鳥,叫天天不應,叫地地也不靈
(自己閉門造車摸索是網路創業者最悲慘的失敗原因!)。


attachments/201208/5398530876.jpg

2.你的網站要自己架設!
(請人設計網站費用貴,小則三四萬高者也有十幾萬元的,往後網站維護也不方便!)

這方面你可以學習:
1.網站架設與網頁設計教學
詳細介紹:
http://por.tw/Website_Design/E_learning/index.php
長期技術支援網站:
http://por.tw/Website_Design

2.購物網站架站教學
詳細介紹:
http://por.tw/sale/cmmerse-4-all/index.php
長期技術支援網站:
http://por.tw/sale

3.部落格架站、行銷、賺錢術教學
詳細介紹:
http://por.tw/blog/E_learning/index.php
長期技術支援網站:
http://por.tw/blog

4.PHP+MySQL+PHPMaker+Dreamweaver整合教學
(PHPMaker運用設計網站教學)

詳細介紹:
http://por.tw/php/new-E_learning/index.php
長期技術支援網站:
http://por.tw/php

5.Flash-動畫製作教學
詳細介紹:
http://por.tw/flash/new-E_learning/index.php
長期技術支援網站:
http://por.tw/flash
-------------------------------------------------------------------------
3.網站圖片非常重要,你如果不會拍照與修圖,那您就要學習:
商業商品攝影教學
詳細介紹:
http://por.tw/design/photographing_Course/index.php
長期技術支援網站:
http://por.tw/design
-------------------------------------------------------------------------
4.影片能讓您的網站更出色,如果您不會錄影
或影片剪接、編輯、上字幕、做特效,那您就要學習:

【錄影影片製作】技術教學
詳細介紹:
http://por.tw/photo-video/video_Course/index.php
長期技術支援網站:
http://por.tw/photo-video
-------------------------------------------------------------------------
5.有了網站,接下來就是『如何將網站經營的有聲有色?』
這就需要專業的網路行銷技術:
A.搜尋引擎排名SEO教學
詳細介紹:
http://por.tw/seo/new-seo/index.php
長期技術支援網站:
http://por.tw/seo

B.EDM電子報製作教學
詳細介紹:
http://por.tw/edm/edm_Marketing/index.php
長期技術支援網站:
http://por.tw/edm

C.電子書製作賺錢密技教學
詳細介紹:
http://por.tw/ebook/new-ebook/index.php
長期技術支援網站:
http://por.tw/ebook

D.【訂單王】超級網路秒殺成交法-A-page 【一頁定江山】行銷賺錢術
詳細介紹:
http://por.tw/page/new-E_learning/index.php
長期技術支援網站:
http://por.tw/page
-------------------------------------------------------------------------
6.如果您想要學習『專案方式』的專業技能,您可以學習:
A.「網路創業賺錢_如何從網路創業賺錢賺到第一個100萬!」課程
詳細介紹:
http://por.tw/soho/new-E_learning/index.php
長期技術支援網站:
http://por.tw/soho

B.藉助『程式』邁向網路自動賺錢術(Auto Rich -自富課程)
詳細介紹:
http://por.tw/Rich/new-E_learning/index.php
長期技術支援網站:
http://por.tw/Rich

C.【正印家族】授權營運專案‧自動印鈔機賺錢術
詳細介紹:
http://por.tw/money/new-E_learning/index.php
長期技術支援網站:
http://por.tw/money
-------------------------------------------------------------------------
7.您的網站可以用兩種方式經營
1.是租用虛擬主機
(創業初期,如果尚無長遠規劃可租虛擬主機空間架設網站)

2.是自己擁有獨立主機!
如果您有此長遠的規劃,那您可以申購此服務:
替你架設Linux主機伺服器+影片教你維護(還有遠端技術協助)讓你自己當家作主!
http://por.tw/linux/new-E_learning/index.php
長期技術支援網站:
http://por.tw/linux
-------------------------------------------------------------------------
8.此外,如果你對國外軟體感覺不好用,那您可以學習:
軟體中文化實戰教學影片
軟體中文化實戰教學影片教學詳細介紹:
http://por.tw/f2blog/new-E_learning/index.php
長期技術支援網站:
http://por.tw/f2blog

不論是英文、日文、大陸簡體或其他軟體,能透過軟體中文化技術變成:繁體中文版
那在網路事業的經營上,所有要用到的軟體,就能通通變成:繁體中文版啦!
那是業經營起來當然是:得心應手!手到擒來!

-------------------------------------------------------------------------

[MySQL改善] -- 如何使用SQL Profiler 效能分析器

mysql 的 sql 效能分析器主要用途是顯示 sql 執行的整個過程中各項資源的使用情況。分析器可以更好的展示出不良 SQL 的效能問題所在。
下面我們舉例介紹一下 MySQL SQL Profiler 的使用方法:

  • 首先,開啟 MySQL SQL Profiler

mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec)
mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
預設情況下 profiling 的值為 0 表示 MySQL SQL Profiler 處於 OFF 狀態,開啟 SQL 效能分析器後 profiling 的值為 1.

  • 通過 sql 效能分析器,我們來對照一下 下列語句前後 2 次執行過程的差異,對我們瞭解 sql 的詳細執行過程是非常有說明的。

mysql> create table t_engines select * from t_engines1;
Query OK, 57344 rows affected (0.10 sec)
Records: 57344 Duplicates: 0 Warnings: 0
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> SHOW PROFILES;
+----------+------------+-------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------+
| 26 | 0.10213775 | create table t_engines select * from t_engines1 |
| 27 | 0.00032775 | select count(*) from t_engines |
| 28 | 0.00003850 | select count(*) from t_engines |
+----------+------------+-------------------------------------------------+
15 rows in set (0.01 sec)
mysql> SHOW PROFILE FOR QUERY 27;
+--------------------------------+------------+
| Status | Duration |
+--------------------------------+------------+
| (initialization) | 0.00000425 |
| checking query cache for query | 0.00004050 |
| checking permissions | 0.00001050 |
| Opening tables | 0.00018250 |
| System lock | 0.00000450 |
| Table lock | 0.00001775 |
| init | 0.00001075 |
| optimizing | 0.00000550 |
| executing | 0.00002775 |
| end | 0.00000450 |
| query end | 0.00000325 |
| storing result in query cache | 0.00000400 |
| freeing items | 0.00000400 |
| closing tables | 0.00000500 |
| logging slow query | 0.00000300 |
+--------------------------------+------------+
15 rows in set (0.00 sec)
mysql> SHOW PROFILE FOR QUERY 28;
+-------------------------------------+------------+
| Status | Duration |
+-------------------------------------+------------+
| (initialization) | 0.00000350 |
| checking query cache for query | 0.00000750 |
| checking privileges on cached query | 0.00000500 |
| checking permissions | 0.00000525 |
| sending cached result to client | 0.00001275 |
| logging slow query | 0.00000450 |
+-------------------------------------+------------+
6 rows in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =27 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000326 |
+----------+
1 row in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =28 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000039 |
+----------+
1 row in set (0.00 sec)
mysql>
從上面的例子中我們可以清晰的看出 2 次執行 count 語句的差別, SHOW PROFILE FOR QUERY 27 展現的是第一次 count 統計的執行過程,包括了 Opening tables 、 Table lock 等操作 。而 SHOW PROFILE FOR QUERY 28 展示了第二次 count 統計的執行過程 , 第二次 count 直接從查詢快取中返回 count 統計結果,通過對照 2 次統計的總執行時間發現,快取讀的速度接近物理讀的 10 倍。通過使用 SQL 效能分析器可以說明我們對一些比較難以確定效能問題的 SQL 進行診斷,找出問題根源。

【技術回覆】Wrong permissions on configuration file, should not be world writable! 解決之方法

學員來信問道:
想在網站主機下,多增加 phpmyadmin 版本(解決資料庫管理,發生亂碼的問題)時

在網頁形式下(phpmyadmin)瀏覽資料庫時,有時候會出現錯誤:
例如:http://網址或IP/
phpmyadmin

出現:Wrong permissions on configuration file, should not be world writable! 警語
請問總教頭該如何處理?

總教頭回覆:
其實這個錯誤是mysql數據庫的權限設置成了777所造成的,解決辦法就是把數據庫的根目錄權限重新設置成755即可。
請使用FTP或WinSCP連線至你的主機
例如:資料庫管理 phpMyAdmin 的存放目錄是:/var/www/phpmyadmin
那就點選phpmyadmin按右鍵,把屬性改成775按確定即可!
如果使用終端機,則可以進行如下的操作:
sudo chmod -R 755 /var/www/
phpmyadmin ,這樣重新設置後就可以了。

郵件伺服器 Postfix 功能概述

郵件伺服器 Postfix 功能概述

Postfix支援的環境:
Postfix 可以在 AIX、BSD、HP-UX、IRIX、LINUX、MacOS X、Solaris、 Tru64 UNIX,以及其它 UNIX 平台上執行。
它需要 ANSI C、 POSIX.1 函式庫,以及 BSD 通訊插座(sockets)。
要運行 Postfix 的檔案系統必須有以下條件:若變更檔案名稱,其 inode 編號仍能保持不變,而且,在 fsync() 函式成功回傳之後,能正常地儲存信件,甚至當檔案在稍後的時間點改變檔名時亦然。

Postfix的設定方式簡單、進階門檻低,更重要的是,Postfix採用模組化的設計,讓郵件伺服器運作穩定、效能卓越、安全性無虞。
Postfix和DNS、POP3、IMAP、資料庫、LDAP、SASL、Dovecot、SMTP授權認證、TLS憑證等組合應用。
Postfix的傳輸限制和內容過濾功能,協助網管人員阻絕垃圾郵件。
運用外部程式,建立過濾垃圾郵件及病毒信件的機制。
建立DomainKeys、DKIM,以防止網域被人偽造。
使用原始碼編譯安裝Postfix和各種模組的方法。

attachments/201304/2568342678.jpg

以下是 Postfix 主要功能列表:
其中某些功能需要搭配第三方提供的函式庫 (例如: LDAP, SQL, TLS)。
有些功能,必須是作業系統有提供支援,而且 Postfix 知道如何去運用時,才會正常可用。
(例如:IPv6,連接快取)。

Postfix支援的協定:
Postfix 2.2     Connection cache for SMTP
Postfix 2.3     DSN status notifications
Postfix 2.3     Enhanced status codes
Postfix 1.0     ETRN on-demand relay
Postfix 2.2     IP version 6
Postfix 1.0     LMTP client
Postfix 2.0     MIME (including 8BITMIME to 7BIT conversion)
Postfix 1.0     Pipelining (SMTP client and server)
Postfix 1.0     SASL authentication
Postfix 2.2     TLS encryption and authentication
Postfix 1.1     QMQP server
棄置信件控管
Postfix 2.1     Access control per client/sender/recipient/etc.
Postfix 2.1     Address probing callout
Postfix 1.1     Content filter (built-in, external before queue, external after queue)
Postfix 2.1     Greylisting plug-in
Postfix 2.1     SPF plug-in
Postfix 2.2     SMTP server per-client rate and concurrency limits
支援的資料庫
Postfix 1.0     Berkeley DB database
Postfix 2.2     CDB database
Postfix 1.0     DBM database
Postfix 1.0     LDAP database
Postfix 1.0     MySQL database
Postfix 2.0     PostgreSQL database
支援的信箱格式
Postfix 1.0     Maildir and mailbox format
Postfix 1.0     Virtual domains
位址處理
Postfix 2.2     Masquerading addresses in outbound SMTP mail
Postfix 2.2     Selective address rewriting
Postfix 1.1     VERP envelope return addresses
Linux主機防火牆規則(Linux主機伺服器架設技術)

Linux 安裝完畢,便已內建基本的防火牆規則,它是採 IPTABLES 來進行封包過濾的動作。
預設的規則列主要在防止外面主機連線至主機,被阻擋的服務有 FTP, SSH, Samba網芳等。


Linux主機防火牆基本原理:

設定檔

設定規則列位置及套用方式是 Linux 專用的方法,與其他 Debian OS 不同。

    * 使用工具: iptables
    * 規則列位置: /etc/rc.local
    * 修改後套用
      root@dns:~# service rc.local start
    * 註: rc.local 原本設計是為開機後要手動執行特定工作的設定區,Linux 把它借來放置防火牆規則列


Linux主機防火牆基本觀念:

    * IPTABLES = "/sbin/iptables"
      這一行是指:設定 IPTABLES 這個變數,以後只要看到 $IPTABLES 這個字串,就代表 /sbin/iptables 這個指令

    * $IPTABLES -F
      這一行是指:把之前所有已設過的規則清空(flush)


Linux主機防火牆封包進出主機方向:

在 /etc/rc.local 內之「設定 filter table 的預設政策」會看到三行設定值,如下:

###-----------------------------------------------------###
# 設定 filter table 的預設政策
###-----------------------------------------------------###
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

筆者將其簡化說明如下:

    * INPUT   --> 外面要進入主機的網路封包,主要用於規範外面如何連線至主機上的各種服務,與 NAT 內網無關
    * OUTPUT  --> 從主機出去的網路封包。
    * FORWARD --> 從 B 網卡轉至 A 網卡,規範於有 NAT 主機或透通式防火牆用途時,內轉外網路封包之控管。
    * 依上例,預設所有的封包皆開放,不阻擋


INPUT規則列的寫法


規則列的寫法,是把預設政策擺在最下面一行,例外規則擺上面,如下所例

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP


上面的規則列可以用下面這張圖來表達,預設 22 埠是不被連線的,但有四個綠點例外。
Iptables sample.png



進階處理
取消某個通訊埠的阻擋


只要把所有該 port (--dport)的規則列前面加上 # 變成註解,或直接刪除即可,以 FTP 示例如下:

# 只有本主機所屬網段才能連到這台主機的 FTP SERVER port 21
# $IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 21 -j ACCEPT
# $IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 21 -j ACCEPT
# $IPTABLES -A INPUT -p tcp --dport 21 -j DROP

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP




新增例外連線範圍

若要新增例外連線點,一定要加在相同埠值區塊最後一行之前(建議第一行),假設我們要加中華電信某個網段 59.127.0.0/16 至 Port 22 的例外點上,做法如下:

    * 編輯 /etc/rc.local (紅字為新增部分)
      root@dns:~# vi /etc/rc.local

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 59.127.0.0/16 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP


    * 套用新規則
      root@dns:~# service rc.local start



新增某個通訊埠連線限制
以 TCP 1723 為例

假設主機有架 VPN 服務,經由「netstat -nlp」查詢後得知其使用的埠值為 TCP 1723。因此,為避免不具善意的網客隨便亂測密碼,我們可以在 /etc/rc.loal加上其連線限制。

假設允許的網段為

   1. 校內: 163.26.182.0/24
   2. 校外某點: 220.130.230.76

    * 編輯 /etc/rc.local,在 IPv4 的設定區(就是 /sbin/ip6tables -F 之上),依 port 值排序,大約在網芳區塊後面加上。
      root@dns:~# vi /etc/rc.local(紅字為新增部分)

 ......

$IPTABLES -A INPUT -p tcp --dport 139 -j DROP
$IPTABLES -A INPUT -p tcp --dport 445 -j DROP
$IPTABLES -A INPUT -p udp --dport 137 -j DROP
$IPTABLES -A INPUT -p udp --dport 138 -j DROP

$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 1723 -j DROP

/sbin/ip6tables -F
/sbin/ip6tables -A INPUT -p tcp --dport 21 -j DROP
/sbin/ip6tables -A INPUT -p tcp --dport 22 -j DROP
/sbin/ip6tables -A INPUT -p tcp --dport 23 -j DROP
 ......


    * 套用新規則列
      root@dns:~# service rc.local start



以 ICMP 為例

預設不讓外面網路任意點可以 PING 本主機,造就本主機不存在的假象,但選定數點開放偵測。假設允許的網段為

   1. 教網中心:163.26.200.0/24
   2. 校內: 163.26.182.0/24
   3. 校外某點: 220.130.230.76


    * 編輯 /etc/rc.local,在 IPv4 的設定區,Port 21 規則列上方。
      root@dns:~# vi /etc/rc.local(紅字為新增部分)

 ......


$IPTABLES -A INPUT -p icmp -s 163.26.182.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp -s 163.26.200.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP

# 只有本主機所屬網段才能連到這台主機的 FTP server port 21
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 21 -j DROP
 ......


    * 套用新規則列
      root@dns:~# service rc.local start



防止 DoS 攻擊

筆者朋友主機最近遭到 DoS 攻擊,我本來以 iptables -m limit 來處理,但發現它會不分來源一律阻擋,這樣無辜的 IP Address 也受到限制,非常不公平,思考並搜尋了一個晚上,後來決定以限制單一 IP 同時連線數(connlimit),來處理此類攻擊,它會把單一 IP 來源同時要求服務(--syn)的連線數,限制在一定的數量以內,正常用人工手動點網頁,就算該網頁有 FrameSet ,應也不致於大過 12(自已用手拼命點得到的結論)才對。因此在設定此限制時,以每一個 IP 同時連線數不得超過 15 為參數,並進行後續的觀察。在設定後,經過一段時間的觀察,CPU 再也不會一直維持在 90-100% 高檔了,大約只會偶而跳至 60-70% ,一般皆在 10 % 以內。重點是它只 tcp-reset 有問題的來源,無辜的人仍可享受應有的速度。

設定方式:

    * 請確認 syslog 有下列參數
          o Linux 在 /etc/syslog.conf
          o Ubuntu 在 /etc/rsyslog.d/50-default.conf

# iptables 的記錄可以寫入 /var/log/kern.log
kern.*                          -/var/log/kern.log

    * 先把可能攻擊的 ip 寫入 /var/log/kern.log ,再把它的封包無聲的丟掉;以同時 15 個連線為限。

$IPTABLES -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j LOG --log-level 4
$IPTABLES -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j REJECT --reject-with tcp-reset

    * 分析攻擊可能來源
          o 螢幕觀看(以 tab 鍵分隔欄位)
            root@dns:~# cat /var/log/kern.log |awk '{print $1 " " $2 " " $9}'
          o 轉至純文字,以供下載至試算表統計
            root@dns:~# cat /var/log/kern.log |awk '{print $1 " " $2 " " $9}' > /root/dosatt.txt
            呈現的結果部分截取如下:

May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66

    * 鎖了吧,可疑者!
      若某個 IP 來源您不認識,但每天常常超過,人工點網頁的極限(同時超過 15 個連線數),可以再加以下規則,把它鎖了吧!


$IPTABLES -A INPUT -i eth0 -p tcp -s 60.250.xxx.xx --dport 80 -j DROP

減少 Linux 上重複檔案的佔用空間

減少 Linux 上重複檔案的佔用空間

警告: 本文所說明之內容僅適合進階使用者應用。未經適當使用,可能會造成系統無法正常運作。

不知道有多少人計算過,其實在你的 Linux 檔案系統中,有不少重複的相同檔案。特別是圖檔、說明文件與修改說明。若是拿將檔案整併,應該可以省下些空間。

於是 Julian Andres Klode (chf) 參考 hardlink.py 的概念寫了一個 hardlink 工具,這個工具會幫你從指定的目錄中找出相同的檔案,以 Hard Link 的方式將多份檔案刪減成一份,如此便可以節省硬碟空間。白話一點說明就是刪掉多重檔案的儲存空間,在檔案系統的目錄中新增一筆連結資訊到同一份儲存位置。

我試著對我的 Debian Sid 上的 /usr 下達這個指令,共找到 11391 個檔案,省下大約 135 MiB 的空間。

attachments/201304/9061220739.jpg

由於 Hard Link 的本質特性,此指令只能用在同一個分割區下,建議不要對全系統下此指令。此外,若已經被 “hard link” 過得檔案分屬不同的軟體,未來若升級軟體時,可能會覆蓋掉共用的檔案而造成軟體無法運作,這點風險請自行承擔。建議使用在較少更新的 Debian Stable 版本。
本Linux主機伺服器架設基地立志於收集各類Linux主機伺服器架設、網站架設及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!