LinuxÏÂͨ¹ýiptablesץȡtcpÁ¬½Ó
1.1.1 iptablesÔÀí
1.1.2 ÒÔ±¾µØÎªÔ´µÄ°ü·¾¶
Step
Table
Chain
Comment
1
±¾µØ³ÌÐò£¨±ÈÈ磬·þÎñ³ÌÐò»ò¿Í»§³ÌÐò£©
2
·ÓÉÅжϣ¬ÒªÊ¹ÓÃÔ´µØÖ·£¬Íâ³ö½Ó¿Ú£¬»¹ÓÐÆäËûһЩÐÅÏ¢¡£
3
mangle
OUTPUT
ÔÚÕâ¶ù¿ÉÒÔmangle°ü¡£½¨Òé²»ÒªÔÚÕâ¶ù×ö¹ýÂË£¬¿ÉÄÜÓи±×÷ÓÃŶ¡£
4
nat
OUTPUT
Õâ¸öÁ´¶Ô´Ó·À»ðǽ±¾Éí·¢³öµÄ°ü½øÐÐDNAT²Ù×÷¡£
5
filter
OUTPUT
¶Ô±¾µØ·¢³öµÄ°ü¹ýÂË¡£
6
mangle
POSTROUTING
ÕâÌõÁ´Ö÷ÒªÔÚ°üDNATÖ®ºó(ÒëÕß×¢£º×÷Õß°ÑÕâÒ»´ÎDNAT³Æ×÷ʵ¼ÊµÄ·ÓÉ£¬ËäÈ»ÔÚÇ°ÃæÓÐÒ»´Î·ÓÉ¡£¶ÔÓÚ±¾µØµÄ°ü£¬Ò»µ©Ëü±»Éú³É£¬¾Í±ØÐë¾¹ý·ÓÉ´úÂëµÄ´¦Àí£¬µ«Õâ¸ö°ü¾ßÌåµ½ÄĶùÈ¥£¬ÒªÓÉNAT´úÂë´¦ÀíÖ®ºó²ÅÄÜÈ·¶¨¡£ËùÒÔ°ÑÕâ³Æ×÷ʵ¼ÊµÄ·ÓÉ¡£)£¬À뿪±¾µØÖ®Ç°£¬¶Ô°ü mangle¡£ÓÐÁ½ÖÖ°ü»á¾¹ýÕâÀ·À»ðǽËùÔÚ»ú×Ó±¾Éí²úÉúµÄ°ü£¬»¹Óб»×ª·¢µÄ°ü¡£
7
nat
POSTROUTING
ÔÚÕâÀï×öSNAT¡£µ«²»ÒªÔÚÕâÀï×ö¹ýÂË£¬ÒòΪÓи±×÷Ó㬶øÇÒÓÐЩ°üÊÇ»áÁï¹ýÈ¥µÄ£¬¼´Ê¹ÄãÓÃÁËDROP²ßÂÔ¡£
8
À뿪½Ó¿Ú(±ÈÈ磺 eth0)
9
ÔÚÏß·ÉÏ´«Êä(±ÈÈ磬Internet)
1.1.3 ¹æÔòÌí¼Ó
´ÓÉÏÃæ¿ÉÒÔ¿´³öÖ»ÐèÒªÔÚOUTPUTÁ´Ôö¼ÓÈçϵÄÀàËÆ¹æÔò¼´¿ÉʵÏÖ½«Ìض¨ip + portµÄtcpÁ¬½Ó½Ù³Öµ½±¾µØÄ³¸ö¶Ë¿Ú¼´¿É
Ä¿µÄip: 200.200.30.228 ¶Ë¿Ú443
±¾µØip: 200.200.30.122, ¶Ë¿Ú28888
iptables -t nat -A OUTPUT -p tcp -d 200.200.30.228 -j DNAT --dport 443 --to-destination 200.200.30.122:28888
²âÊÔOK
1.1.4 Ïà¹Ø´¦Àí
(1) ÒÀÀµÓÚiptables¹¤¾ß
(2) Ó¦ÓòãÈçºÎ»ñÈ¡¶ÔÓ¦¹ØÏµ£¿
ÆäʵÕâ¸öʱºò¿ÉÒÔͨ¹ýnetstatÃüÁî·¢ÏÖÈçÏÂÆæ¹ÖµÄÏÖÏó£º
ͬʱºÍ200.200.30.228µÄ443¶Ë¿ÚºÍ±¾µØ28888¶Ë¿Ú½¨Á¢ÁËÁ¬½Ó£¬
ËùÒÔÕâÀïÒ²¿ÉÒÔ»ñÈ¡µ½ÔÀ´ÒªÁ¬½ÓµÄ×ÊÔ´ºÍ¶Ë¿Ú
Ïà¹ØÎĵµ£º
=== 6 ÌåϵMakefileÎļþ
ÔÚ¿ªÊ¼½øÈë¸÷¸öĿ¼±àÒë֮ǰ£¬¶¥²ãMakefileÎļþÉèÖñàÒë»·¾³ºÍ×öЩ׼±¸¹¤×÷¡£¶¥²ãMakefileÎļþ°üº¬Í¨Óò¿·Ö£¬arch/$(ARCH) /Makefile°üº¬¸ÃÌåϵ¼Ü¹¹ËùÐèµÄÉèÖá£Òò´Ëarch/$(ARCH)/Makefile»áÉèÖÃһЩ±äÁ¿ºÍÉÙÁ¿µÄÄ¿±ê¡£
µ±±àÒëʱ½«°´ÕÕÒÔÏ´ó¸Å²½ÖèÖ´ÐУº
1) ÅäÖÃÄÚºË => ²úÉú .configÎļþ
......
#include <iostream>
#include <pwd.h>
#include <sys/types.h>
#include <stddef.h>
#include <string>
#include <list>
using namespace std;
void GetUser(list<string>& lsUser);
int main()
{
list<string> lsUser;
GetUser(lsUser);
cout <&l ......
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2 // Ïû·ÑÕß» ......