banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: myquartz  XML
Profile for myquartz Messages posted by myquartz [ number of posts not being displayed on this page: 0 ]
 
Nên đọc kỹ PoE nó là cái gì ở đây http://en.wikipedia.org/wiki/PoE đã, cộng với đi học về vật lý 12 và 1 ít về kỹ thuật điện rồi hãy ti toe tìm hiểu về Power Sourcing Equipment.
Nói bừa khái niệm PoE Server thì người ta cười cho đấy.
Học sinh giờ dốt kiến thức cơ bản (của bậc phổ thông trung học) quá.
Gõ lệnh netstat -anp và post kết quả lên coi xem thế nào.
Cái vk là để chống key logger, và nó thực hiện tốt việc đó.
Nhưng nêú là mouse click logger như trên, thì nó ko chống đc.
attacker dùng mouse click logger thì trả cost nhiêù hơn key logger vì dữ liệu hình ảnh to hơn, truyền đi sẽ lâu hơn và ko thể tự động hoá việc phân tích dữ liêụ mà phải có ng xem.
Ng ta có tìm cách giảm hiệu quả của mouse click logger (mcl), như là cách bổ sung khả năng khi mouse over 1 button nào đó x giây thì coi như bấm phím đó, ko có click nên mcl ko ghi lại đc.
Tuy nhiên mouse moving logger lại ra đời để khắc phục cách chống đó. Nhưng Cost lại lớn hơn nưã.
Nói chung nó là sự rươt đuổi. Tác dụng lớn nhất của vk là nó loại bỏ bớt các attacker ko thể trả đc cost ở mức nào đó, giảm đi rủi ro, vậy thôi.
có 1 máy nào đó tr mạng dính con virus giả lập gateway rồi. giết đi thì hết.

hizit91 wrote:

Anh ơi, cho em hỏi là zombies là cái gì thế?
và cái này nữa, em thắc mắc là tại sao host B chỉ có 1 IP, thế thì sao gói tin HVA gửi đi tới nhiều IP khác nhau lại cùng hướng về B?
thanks anhsmilie

zombies là các máy tính nối mạng Internet mà attacker bằng cách nào đó khống chế và lơị dụng đc. Tra google đi.
Hva gửi tơí nhiều ip khác nhau, nhưng chúng phải là các ip của zombies, ko thì host B ko bao giờ hoàn thành 3 bước cả.
tuy nhiên nếu ng ta có 1 mạng zombies thì ng ta gưỉ syn ngay từ các zombies chớ ko gửi từ host B đó đâu.

viethungs wrote:

Từ khi cài nó tớ chưa bao giờ bật cái Selinux cả. Và tớ cũng chạy lệnh disable nó mỗi khi khởi động server 


Tớ cài CentOS thì nó ko có option bật/tắt, mặc định nó là bật và có thể tắt được khi nó chạy firstboot.

Cậu chạy lệnh gì để tắt nó thế? Cậu thử chạy lệnh sestatus xem nó có ra thế này không?

Code:
SELinux status: disabled


Nếu cậu đã tắt SELinux rồi mà vẫn bị ... lỗi đó. Thì tớ xin chịu. Nếu cậu share cho cái SSH account hoặc chạy screen để mọi người coi cụ thể thì có thể giúp đỡ cậu được đấy.

F10 wrote:
7. kill
Lệnh này sẽ làm chấm dứt một process.
Cú pháp:
Code:

kill [ -s signal | -p ] [ -a ] [ -- ] pid ...
kill -l [ signal ]



Các signal thông dụng:

SIGHUP (-1): Đây là một tín hiệu treo, nó chỉ thị cho chương trình re-load file cấu hình hoặc re-open giao diện, chứ không chấm dứt process
SIGTERM (-15): đây là một tín hiệu chấm dứt "tao nhã". Nó chỉ thị cho chương trình dừng những gì đang chạy lại, hỏi xem có processes (hoặc users) nào đang kiểm soát nó không, sau đó mới thoát.
SIGKILL (-9): tín hiệu bắt buộc chấm dứt luôn một process.
 


Em đang tìm hiểu cái lệnh kill . Khi đọc đoạn này của anh em thấy rất hay vì em đang băn khoăn mấy cái options trong lệnh kill.
ở trên anh đã giải thích 3 options là SIGHUP(-1) ; SIGTERM (-15) và SIGKILL (-9) . Đây hầu như là các options được dùng chủ yếu trong lệnh kill. Nhưng em thấy trong sig của lệnh kill thì có tới 64 cái sig .
# kill -l để biết 64 sig đó .
Anh có thể giải thích tiếp các sig còn lại được không ạ.? !
Em cũng đã tìm trong man và googling nhưng không được rõ lắm .
Đây là 1 trong những link em thấy đầy đủ hơn cả nhưng vẫ tối nghĩa

 
 

kill ko hẳn là để giết 1 process, đó chỉ là 1 cách trong các hệ thống Posix để gửi signal từ process này cho process khác.
Ý nghĩa từng signal này thì theo cái bảng kia hoặc trong 1 số các sách lập trình linux/unix cũng có mô tả. Ví dụ ALRM (Alarm) là 1 signal nhận được khi có sự hẹn giờ. Có nhiều các sự kiện xảy ra với process đều được OS báo lại bằng signal (và lệnh kill/hàm kill này).
Có 3 signal thường dùng để kết thúc ứng dụng, trong đó 2 cái SIGHUP và SIGTERM là ứng dụng có thể bắt được, còn SIGKILL thì ko thể:
- SIGHUP (signal hang up): làm việc kiểu ngày xưa, khi kết nối terminal với modem, khi bị ngưng kết nối này (hang up), thì nó báo cho process (lệnh đang chạy) để thoát. Có 1 lệnh là nohup nó chặn cái signal này lại để cho process ... chạy tiệp.
- SIGTERM: (terminate) ngưng ứng dụng lại, ví dụ khi Ctrl+C thì lệnh ngưng lại. Tuy nhiên nó cho phép ứng dụng dọn dẹp trước khi thoát, hoặc có khi phớt lờ cái signal này chạy tiếp.
- SIGKILL: (giết smilie)): cái này ngưng ứng dụng lại và ứng dụng không thể hứng đc, mọi thứ rác còn lại (ví dụ temp file) có thể còn. OS hay gửi SIGKILL cho tất cả các process đang chạy khi nó reboot/shutdown.
Cậu vẫn loay hoay với nó à?
Tớ nói rồi, cậu disable cái SELinux đi, sẽ thấy hiệu quả liền.
Xem cách disable nó ở đây: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable.html
Một máy chủ NAS thì phía sau nó là 1 DAS.
NFS server kết nối với tủ đĩa thì cũng có thể coi là 1 NAS đối với client của nó.
DAS có khác vì nó thường chỉ cắm với duy 1 client, quá lắm thì 2, và thường dùng như là là local storage, trong khi NAS thì lại thường là Shared Storage, có nhiều client nối tới nó. So sánh với nhau nó khập khiễng.
Về mặt vật lý thì nó khác nhau là đường truyền kết nối từ CPU đến cái Storage. Vì NAS hay dùng mạng Ethernet, qua IP, nên nó dễ dàng cắm vào và hoạt động hơn, các client cũng ko cần phải tắt bật hoặc thiết lập quá đặc biệt để nối tới cái NAS mới cắm vào đó. Một điểm nữa là DAS nó thường chỉ hỗ trợ truy nhập kiểu Block-based, không quan tâm đến File System là gì, còn NAS thì lại thiên về File-Based (cũng có hỗ trợ Block-based như là iSCSI nhưng ít). Vì thế DAS tuỳ thuộc hệ điều hành, còn NAS thì tuỳ thuộc giao thức truy cập mà nó hỗ trợ.

Nếu có so sánh thì nên so NAS với lại SAN (xét về 1 khía cạnh là shared storage) hoặc về mặt chức năng/tốc độ với File Server.

centos wrote:


Uhm cũng có thể lắm, nhưng mình nghĩ chỉ kt cho chắc thôi chứ lúc đầu server hoạt động bình thường mà với lại lỗi forbiden không thể nào thằng SELinux báo được, mà nó sẽ báo reques time out,

 


Không cậu ạ, SELinux báo lỗi cho ứng dụng là permission denied ngay. Lỗi Permission Denied này giống hệt lỗi khi không có quyền truy cập file. Dù chmod 777 hay chown đều vô tác dụng hết. Tất cả là do policy của SELinux.
Tớ gặp điều này vài lần rồi, và chưa bao giờ bị lỗi timeout cả.
Vì bạn chạy cPanel, shared host, chắc vì lý do an toàn nên php phải chạy dưới dạng cgi-bin (xem cái top của bạn rất nhiều process php5 với các user khác nhau).
Ở chế độ này, tất nhiên là tốn rất nhiều mem rồi. Dù bạn compile apache kiểu gì đi chăng nữa (hay dùng package đi kèm CentOs).

Tớ nghĩ bạn nên tập trung vào tunning php5, loại bỏ các extension ko cần thiết của nó, limit memory cho mỗi script đc phép dùng (mặc đinh của centos có 8M thôi)....

Đến đây chưa đủ thì bạn ... tăng RAM cho máy, hoặc chấp nhận rủi ro bằng cách chuyển qua chạy chế độ mod_php. Ở chế độ mod_php, apache sẽ tận dụng rất hiệu quả các child proccess để nạp và chạy script, nói chung là tốn ít mem hơn, nhưng vì mọi user đều chạy dưới quyền của apache nên nếu 1 thằng chủ shared host nào nó phá thì...
Rất có thể là do SELinux.
Cậu chạy VirtualHost với directory khác mặc định như thế, mọi thứ có vẻ ok như thế mà vẫn bị permision denied. Thì có thể bị SELinux chặn lại.
Apache khi khai báo VirtualHost thì nó sẽ bỏ qua DocumentRoot cũ, mà coi cái VirtualHost config đầu tiên là site mặc định, mà thư mục này khác với mặc định của nó.
Có thể kiểm tra log việc chặn này ở file: /var/log/audit/audit.log
Để tắt nó đi chạy:
system-config-securitylevel-tui

Mục SELinux thì chọn là Disable, rồi OK. Sau đó khởi động lại máy.

Mô tả hơi khó hiểu.
Wifi và proxy là 2 việc khác nhau. Không giống Win/IE phân biệt các connection mà dùng proxy hay ko, Linux nói chung là ko có vụ đó.

Trước hết, phải kết nối Wifi. Bạn hãy cung cấp các thông số kết nối mà bạn đã thiết lập, cách bạn thiết lập.
Bạn cho biết sau khi kết nối được wifi: các lệnh sau trả lại kết quả ra sao:
/sbin/ifconfig
route -n
cat /etc/resolv.conf

Bạn biết thông số default gateway chứ? thử ping địa chỉ đó xem có reply ko? (với Fedora 10, mở cửa sổ Terminal ở App.. => System Tools => Terminal).

Bạn biết được địa chỉ IP của proxy, bạn cũng ping thử nó xem.

Bạn biết đc port của proxy, bạn thử lệnh:
telnet <ip của proxy> <port của proxy>
Nếu nó báo connected. => Proxy của bạn có thể nối tới được.
Tới bước này, nếu các thứ ở trên ok, nếu người khác sử dụng đc proxy đó thì bạn cũng có thể vào được, bằng cách thiết lập proxy trong Firefox.

Chúc bạn may mắn.

nbthanh wrote:

myquartz wrote:
Phải chăng đó là các cách biên dịch của PHP mà bạn muốn đề cập tới? 

Có lẽ là...không smilie
Topic đang bàn về vấn đề "compile php (engine) trên Linux" thì đúng hơn chứ hoàn toàn không nói đến vấn đề 1 PHP script được thực thi như thế nào. 


Vậy thì có phải là mấy cách biên dịch php engine ấy là: dịch lấy bằng gcc, dịch bằng Intel C++ compiler, dịch bằng cách dịch từng file nguồn một, dịch bằng cách chạy make script..
Còn nữa: dịch các module thành shared object hay static link, dịch ra i386 hay x86_64, dịch ra dạng thread-safe cho multi-thread hay không...

Dịch bằng ... gì đó không biết nữa. smilie.

Các cách này đều cho ra mấy dạng binary: php (cli), php-cgi, mod_php, mấy cái này dùng nào thế nào thì tuỳ.
Nói chính xác 1 điều là php không "biên dịch" source code PHP, mà là "thông dịch" và "thực thi" chúng.

Thực sự thì php không tốn công quá nhiều cho việc thông dịch này, do cấu trúc cú pháp thẳng tuột của PHP. Mặc khác, hầu hết các module (extension) của php đều là dạng binary, load rất nhanh. Do đó, thời gian php khởi động tiến trình, load và khởi động các module, kiểm tra cú pháp và bắt đầu thông dịch song song với thực thi php script tốn khá ít thời gian. => Nó "khá nhanh" khi chạy ở dạng CGI, Không tệ như Perl (LAMP có Perl mà). Dù sao CGI cũng là phương thức "tệ nhất" của ứng dụng web, xét về hiệu năng.

Topic nói về việc "biên dịch" PHP. Có phải là nói về quá trình khởi động, load module, kiểm tra cú pháp và bắt đầu chạy script từ đầu đến cuối. Khái niệm cách "biên dịch" của php, theo tôi đó chỉ là các cách khác nhau của PHP khi nó kiểm tra cú pháp và thực thi mà thôi.

Về quá trình này, ta thử test với các đoạn mã, chạy bằng dòng lệnh như sau:
test1: biến không tồn tại:
Code:
<?php
echo "Hello world!\n";
echo $a;
echo "Goodbye!\n";
?>


Kết quả chạy:
Hello world!
PHP Notice: Undefined variable: a in test1.php on line 3
Goodbye! 


Việc không có biến $a không làm cho script bị fail, nó vẫn chạy từ đầu chí cuối (Goodbye được in ra). Vì thiếu biến không phải là vấn đề gì quá nghiêm trọng.

test2: hàm không tồn tại:
Code:
<?php
echo "Hello world!\n";
no_defined_func();
echo "Goodbye!\";
?>


Kết quả chạy:
Hello world!
PHP Fatal error: Call to undefined function no_defined_func() in test2.php on line 3 


Hàm không tồn tại, nhưng php vẫn chạy từ đầu đến chỗ không thể bỏ qua chạy tiếp được. Câu Hello thì có nhưng Goodbye không được in ra.

test3: hàm không tồn tại, gọi sai cú pháp (tôi cố tình thừa dấu mở ngoặc):
Code:
<?php
echo "Hello world!\n";
no_defined_func(();
echo "Goodbye!\n";
?>


Kết quả chạy:
PHP Parse error: syntax error, unexpected ')' in test3.php on line 3 


Rõ ràng là khâu kiểm tra cú pháp đã phát hiện và stop ngay khi phát hiện sai cú pháp. Không một dòng nào được thực thi cả.
Ta nên biết việc kiểm tra cú pháp này không bao gồm việc tạo ra cây thực thi (một việc tốn nhiều bộ nhớ và CPU), do không có cây thực thi, php không thể kiểm tra tính đúng đắn của từ khóa hoặc sự tồn tại của hàm/biến người dùng tự định nghĩa. Do đó, chỉ đến khi thông dịch dòng đó nó mới báo là từ khóa/hàm không tồn tại.

Vì mục đích chính là viết cho Web Service, nên php nó sử dụng các kỹ thuật khác nhau nhằm tăng hiệu năng. Nếu chạy dưới dạng Module thường trực của Apache, php_module được load vào chung vùng nhớ với apache process và nó đứng đó để hứng các request apache chuyển cho.

Kiểu module có 1 cái lợi lớn nhất: php load các module của nó 1 lần duy nhất, và các biến, các handle của module tương ứng có thể được giữ lại trong bộ nhớ sau khi thực thi, nhằm tận dụng lại cho lần sau, khỏi phải khởi tạo lại. Đó các persistent connection/handle như mysql, socket...

Một điểm nữa, để đỡ công kiểm tra cú pháp, PHP có thể "cache" lại các source nào mà nó đã kiểm tra cú pháp thành công, sau nếu có request gọi lại, nó sẽ bỏ qua bước kiểm tra cú pháp. Nếu có sự sửa đổi bất kỳ 1 file nào hoặc depencies, thì nó sẽ làm lại việc kiểm tra cú pháp. Việc support cái này được cung cấp bởi các php accelerator.

Tìm hiểu sâu, từ phiên bản 4.0 trở đi, php kiểm tra cú pháp và "biên dịch" source đó thành bytecode, sau đó thực thi bytecode này, qua sự hỗ trợ của Zend Engine. Cách này tăng tốc đáng kể so với các "thông dịch" từ source, do nó không những bỏ qua việc kiểm tra cú pháp, mà còn có sự đúng đắn của hàm và biến, object..., và mã bytecode thì luôn được xử lý hiệu qủa hơn text-proccessing. Tất nhiên, nó cũng ngốn bộ nhớ hơn cách thông dịch thẳng tuột như ban đầu do phải cache lại các phần bytecode.

Tóm lại, php hiện có 2 cách xử lý với php source: kiểm tra cú pháp -> thông dịch/thực thi và kiểm tra cú pháp/biên dịch thành bytecode -> thực thi bytecode.
Phải chăng đó là các cách biên dịch của PHP mà bạn muốn đề cập tới?

Tham khảo:
http://en.wikipedia.org/wiki/PHP
http://www.auxy.com/discuz/viewthread.php?tid=665
Vậy chương trình đó là chương trình gì thế?
Máy của bạn dual-core, tức là có thể chạy 2 thread/tiến trình song song nhau, mỗi cái với tốc độ full-speed của 1 core.
Chương trình muốn khai thác hết CPU/RAM, thì nó phải sử dụng các lệnh tính toán (nhất là tính toán số học, ma trận, tìm kiếm) rất nhiều, và cũng lưu trữ/sử dụng một lượng lớn bộ nhớ RAM để đọc/lưu kết quả tính toán này. Tôi có biết 1 chương trình tính toán chữa bệnh ung thư phân tán, nó mới ngốn hết CPU và khá khá RAM.
Nếu máy khoẻ vậy, mà chương trình bạn chạy không thiết kế để ăn thật nhiều RAM/CPU, không thiết kế để chạy các công việc tính toán song song nhiều tiến trình/thread, cần nhiều RAM thì chả thể nào ăn hết hết CPU/RAM của bạn.
À, mà theo cấu hình máy của bạn, nó là laptop. Laptop không phải là máy nhằm để tính toán tốc độ cao đâu bạn.
Bạn hãy cho 3 dòng sau vào file kickstart của bạn:
Code:
url --url=file://dvd-media-mounted
repo --name=Everything --baseurl=http://to-everthing-repo
repo --name=Updates --baseurl=http://to-update-repo
repo --name=UpdatesNewKey --baseurl=http://to-updatenewkey-repo


Các repo trên bạn có thể có tại local hoặc trỏ tới 1 repo ở gần nhất (ví dụ ở FPT Net chẳng hạn). Sẽ tiết kiệm công download và lại có được package với phiên bản mới nhất.
Repo Everything cho vào nếu bạn cài nhiều gói ko có sẵn trong đĩa DVD. Nên có vì các package được update đôi khi cần đến nó.

conmale wrote:

lonely_star1403 wrote:
minh đang chạy server VPN và trong mạng của mình có 2 modem ADSL một để dự phòng khi một mạng bị rớt.

Modem A chạy dịch vụ DHCP và cho nó địa chỉ 192.168.1.1 mask 255.255.255.0
Modem B disable dịch vụ DHCP và cho nó địa chỉ 192.168.1.2 mask 255.255.255.0

VPN server mình confg địa chỉ 192.168.1.3 mask 255.255.255.0 và gateway 192.168.1.1

cả 2 modem đều port Forward đến cổng 1194 đến 192.168.1.3

cả 3 thiết bị đều cắm chung một switch.

nhưng mình connect đến địa chỉ public của modem A thì ok nhưng khi connect đến địa chỉ public của Modem B thì không được

thử chuyển gateway của server qua 192.168.1.2 thì ngược lại. connect đến modem B ok nhưng A lại không được.

vậy trong trường hợp này thì nên config cấu hình mạng thế nào để dịch vụ VPN có thể kết nối được trên cả 2 địa chỉ public của modem nhỉ??

mình đã thử thay VPN bằng các loại dịch vụ khác nhau như HTTP, SSH nhưng ko thành công. Có lẽ vấn đề nằm ở chổ gateway nhưng mình ko nghĩ được cách giải quyết.

Mong mọi người giúp đỡ smilie  


--------- Modem A --|
Client ----------------|-- switch ---> VPN
--------- Modem B --|

Nếu packet đi xuyên qua Modem A (hoặc Modem B), qua switch, đến VPN server làm sao nó biết là nó sẽ hồi báo về lại Modem A (hoặc Modem B) để trả lời client nếu như gateway cho VPN server luôn luôn là IP của Modem A


Hì, bạn đưa câu hỏi cho bạn kia mà không trả lời gì cả. Bạn kia bị 1 lỗi khá cơ bản về phần routing. Các bạn làm network phải nhớ rằng: khi packet đến VPN server (hay bất kỳ thiết bị mạng nào, ko có bảng định tuyến đặc biệt), thì bất kể nó đến từ đâu, Modem A hay B, thì nó các packet gửi trả lời đều đi đến default gateway của VPN server, ở đây là modem A (hoặc modem B). Vậy khi packet đến từ B nhưng trả lời đi theo lối A (mặc định) ắt là sai đường, nó sẽ không thể đến đúng đích được, hoặc là đúng như mong muốn được.

Có cách để làm điều đó, nhưng tớ mới biết cách làm trên Linux thôi . smilie
VPN bạn kai dùng là OpenVPN (port 1194?), nó có vài tính năng có khả năng giúp bạn vượt qua trở ngại này.

Giải pháp 1: dùng 2 VPN server, mỗi server dùng 1 gateway. Mỗi server sẽ có client ở miền địa chỉ khác nhau và route đúng, hoặc là chạy chế đô bridge.

Giải pháp thứ 2: tốt, đã hoạt động thực tế, nhưng yêu cầu OpenVPN phải là version 2.1 (Ubuntu 8/Fedora 9), máy VPN server phải là Linux.
- Đặt IP server là 192.168.1.3/24, default gateway là 192.168.1.1 (modem A), modem B thì lấy địa chỉ 192.168.1.2.
- Tạo thêm (gán alias) 1 IP nữa cho OpenVPN server, cùng với interface chính, là 192.168.1.4/24
- NAT hay forward port trên modem: A thì forward về 192.168.1.3, B thì forward về 192.168.1.4.
- Thêm 1 thông số trong file config OpenVPN của server: multihome
- Gõ thêm vài lệnh để routing cho đúng (nên cho vào openvpn-startup để tự load khi khởi động):
Code:
ip route add 0.0.0.0/0 via 192.168.1.1 table 11
ip rule add from 192.168.1.3/32 table 11
ip route add 0.0.0.0/0 via 192.168.1.2 table 12
ip rule add from 192.168.1.4/32 table 12

=> Xong. Trong client config bạn có thể đặt nhiều remote <ip public của modem> với các IP khác nhau, để OpenVPN tự động chuyển kết nối tới modem khác nếu 1 modem/1 đường ADSL chết. 2 modem này sẽ load balance cho các client OpenVPN (càng nhiều client thì việc LB sẽ càng tốt).
Mở đầu
Rảnh muốn chia sẻ với các bạn vài thủ thuật nhỏ, cái này đúng ra là tiểu xảo sử dụng phần mềm, nhưng ngặt một nỗi tớ chưa đủ đẳng cấp để post vô đó, nên cho vào đây là hợp nhất.
Hiện tại bạn ở cơ quan hoặc doanh nghiệp, nếu có tăng tốc truy cập web bằng cách sử dụng Squid Proxy hoặc dự định sử dụng nó, thì có thể áp dụng thủ thuật này để tăng thêm chút đỉnh tốc độ.

Đặt vấn đề
Theo thói quen thì các nhân viên văn phòng rất hay vào vnexpress.net hay dantri.com.vn (hoặc các site tin tức tương tự). Cái dở của mấy tay làm các web site này là tụi nó có quá nhiều quảng cáo dạng flash, hơn nữa lại hay áp dụng kỹ thuật chống "cache", có thể chỉ với mục đích thống kê, nhưng tiêu tốn băng thông một cách không cần thiết. Cách chống cache thường áp dụng ở các site này là thêm '?xxx' vào sau URI. Ví dụ http://vnexpress.net/ad/abc.swf, khi viết src trong thẻ object thường ghi thành: http://vnexpress.net/ad/abc.swf?param=xxxx. Mỗi file flash quảng cáo không phải nhỏ (cỡ khoảng 50KB), trang chủ có thể có đến 10 cái như thế, mỗi cú click vào trang là 500KB down về là ít, bất chấp có cache tăng tốc hay không và nội dung chỉ thay đổi 1 chút.
Như các bạn đã biết với squid, khi gặp cái URL nào có dấu ? thì nó sẽ không cache lại cái object đó, ngay cả khả năng cache IE hoặc Firefox cũng bị vô hiệu hoá nếu các tham số là ngẫu nhiên.
Với 1 văn phòng 100 nhân viên, 50% họ vào duyệt vnexpress.net, thì mỗi view của họ, 500*50 ~ 25MegaByte, tải trên 1 kênh 3Mbit/s full speed có thể mất tới 10 giây. Và lúc nào cái kênh 3Mbit đó cùng đầy nghẹt, với 70-80% dung lượng chỉ để vào vnexpress.net.

Giải quyết
Squid có 1 cái tuyệt với gọi là cho phép url wwwector (với bác nào đã dùng squidGuard hoặc tương tự). Dựa vào nó ta có thể có cách xử lý với các URL kiểu vớ vẩn như kia.
giả định rằng các bạn chạy với hệ thống squid proxy trên linux, dùng perl, ta có thể tự viết 1 cái wwwector đơn giản và cho vào trong squid.conf như sau:
Tạo 1 file bằng các lệnh sau, tại vị trí /opt (hoặc tuỳ bạn), có tên /opt/www.pl:
Code:
echo '#!/usr/bin/perl' > /opt/www.pl
echo '$| = 1;while(<>) { print (/^(http:\/\/.+\.(swf|flv|gif|jpg))\?/ ? qq{301:$1\n} : qq{\n}); }' >> /opt/www.pl
chmod +x /opt/www.pl


Mở file squid.conf (với squid 2.xx, tương thích với 3.x), tìm, bỏ comment và sửa hoặc thêm 2 dòng sau:

Code:
wwwect_program /opt/www.pl
wwwect_children 5

Save lại và khởi động lại squid.
Cái embeded wwwector này hỗ trợ xử lý các URL với các file swf, flv (flash), gif và jpg.

Kết quả
Sau khi áp dụng cái wwwector đơn giản này vào squid-proxy của 1 doanh nghiệp, với hơn 100 người sử dụng, 1 kênh ADSL MegaNET của FPT với 3Mbit, tốc độ duyệt web nói chung và vào vnexpress.net tăng lên đáng kể, dù số hit do proxy thống kê không ít hơn. Dung lượng mà vnexpress.net giờ đây chỉ chiếm khoảng 20-30% tổng kênh 3Mbit, vào các site khác cũng nhanh đáng kể do rảnh kênh. Squid cũng chỉ làm việc là trả lại các URL "cache được" với các file flash, nên IE/Firefox cũng không cần tải về.
Cái dở: có lẽ 1 số site có tiểu xảo thống kê như vnexpress.net cũng bị vô hiểu hoá, nhưng không thấy ai kêu cả.
Trong Windows từ XP trở đi có firewall tích hợp sẵn. Nói chung nó đủ chức năng cơ bản và có khả năng bảo vệ được máy tính ở một mức độ nhất định. Nên bật nó lên, nhất là khi bạn sử dụng mạng không dây công cộng, cũng chẳng tốn nhiều tài nguyên lắm đâu, lại ít xung đột với ứng dụng khác. Bạn chỉ gặp vấn đề nhỏ với nó nếu bạn có chia sẻ dịch vụ hoặc mở cổng dịch vụ nào đó thôi, mà cái này có thể chỉnh lại để vượt qua được.
Còn muốn biết firewall là gì, hãy xem: http://en.wikipedia.org/wiki/Firewall
Hình như ngoài Verisign ra (và hình như có thêm Entrust nữa nhưng èo uột lắm), không có thằng CA quốc tế nào mở dịch vụ tại VN và đồng ý chứng thực cho tổ chức ở VN. Kiểu 1 mình một chợ thế thì chọn nó là phải rồi.
Hì hì, thêm vài lệnh nữa:
41. uptime: cho biết thông tin là máy đã up bao lâu và tải của nó trong vài chục phút gần đây nhất.
Code:
[text@server ~]$ uptime
13:32:50 up 4:22, 3 users, load average: 0.34, 0.32, 0.33


42. xargs: lệnh đổi các dòng trong STDIN thành parameter cho command ở sau. Ví dụ nén tất cả các file trong thư mục hiện thời thành gz (tất nhiên gõ gzip * cũng được).
Code:
# ls | xargs gzip


43. nice: khi chạy 1 ứng dụng nặng nào đó, tốn nhiều CPU, không cần gấp gáp quá, mà không muốn ảnh hưởng tới các foreground process. Nice sẽ đặt trị số NICE của process lên > 0 (nghĩa là giảm độ ưu tiên), tận dụng CPU rảnh rỗi. Nếu kết hợp với nohup nữa thì tuyệt.
Code:
# nice gzip OfficeXpSp3-kb832671-fullfile-enu.exe

Ở một cửa sổ khác, chạy top
Code:
top - 13:44:39 up 4:34, 4 users, load average: 0.58, 0.62, 0.49
Tasks: 134 total, 2 running, 132 sleeping, 0 stopped, 0 zombie
Cpu(s): 18.5%us, 6.2%sy, 65.7%ni, 0.0%id, 9.0%wa, 0.0%hi, 0.6%si, 0.0%st
Mem: 1025596k total, 1011384k used, 14212k free, 33616k buffers
Swap: 811240k total, 84k used, 811156k free, 505860k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21685 testuser 30 10 2048 572 244 R 64.6 0.1 0:07.12 gzip OfficeXpSp3-kb832671-fullfile-enu.exe
2471 root 20 0 399m 34m 10m S 12.4 3.5 19:44.95 /usr/bin/Xorg :0 -br
12623 testuser 25 5 237m 85m 22m S 3.4 8.5 12:16.84 /usr/lib/firefox-3.0.1/firefox
21707 root 20 0 9344 2796 2240 S 1.7 0.3 0:00.03 sshd: unknown [priv]
21709 root 20 0 8556 2256 1824 S 1.7 0.2 0:00.03 sshd: [accepted]

hungk10b wrote:
modem của mình là Zyxel, không có chức năng bridge, chỉ có static router, như vậy phải config như thế nào? 

Bạn chịu khó đọc tài liệu hướng dẫn sử dụng con Zyxel này. Con Zyxel này chuyển qua brigde được, nhưng phải telnet vào nó và chuyển.
Bạn có thể tham khảo 1 bài viết từ lâu lắm rồi ở đây:
http://www.diendantinhoc.org/forum/post/1023489068/Ket-noi-truc-tiep-PPPoE-voi-ket-noi-ADSL-cua-FPT.html#1023489068
Chứ đừng làm NAT 2 lần như mô hình nói ở bài đầu tiền topic này, nói chung làm thế chỉ khiến giảm performance mà firewall chỉ làm được 50% chức năng là Outbound thôi, còn kiểm soát Inbound thì vô nghĩa.
 
Go to Page:  First Page Page 15 16 17 18

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|