10. ifconfig(네트워크 인터페이스 설정) |
1) 경로 : /sbin/ifconfig
2) 요약 : 이더넷 카드와 네트워크 환경을 설정
3) 사용 방법 : ifconfig [인터페이스]
ifconfig 인터페이스 [타입] 옵션 | 주소
4) 옵션
인터페이스 : 인터페이스 이름으로 일반적으로 NIC 설정이 되어 있으면 eth0, eth1, PPP로 연결되어 있다면 ppp0, ppp1을 사용
타입 : 지정한 인터페이스에서 사용한 프로토콜을 지정
지원하는 프로토콜은 et(TCP/IP를 사용할 때), inet6(IPv6), ax25(AMPR Packet Radio), DDP(Appletalk Phase 2), ipx(Novell IPX) 등이 있음
up : 지정한 인터페이스를 활성화
down : 지정한 인터페이스를 비활성화
[-]arp : ARP 프로토콜을 활성화/비활성화
[-]promisc : 무차별 모드를 활성화/비활성화
무차별 모드를 활성화하면 인터페이스를 통과하는 모든 패킷을 확인 가능
[-]allmulti : 모든 멀티캐스트 모드를 활성화/비활성화
모든 멀티캐스르 모드를 활성화하면 인터페이스를 통과하는 모든 패킷을 받음
metric N : 인터페이스 메트릭을 설정
mtuN : 인터페이스 MTU를 설정
dstaddr addr : PPP 원격 IP 주소를 설정
netmask addr : 인터페이스의 넷마스크를 설정
add addr/prefixlen : 인터페이스에 IPv6 주소를 부여
del addr/prefixlen : 인터페이스에 IPv6 주소를 제거
irq addr : 디바이스에 irq 주소를 지정
io_addr addr : 디바이스의 IO 주소를 지정
mem_start addr : 디바이스의 공유 메모리 시작 주소를 지정
mdeia type : 디바이스의 물리적 타입을 설정
물리적 타임에는 10base2(thin Ethernet), 10baseT(twisted-pair 10MBps Ethernet), AUI (externaltransceiver) 등이 있음
[-]broadcast [addr] : 인터페이스의 브로그캐스트 주소를 설정
[-]pointopoint [addr] : 인터페이스의 점재점 모드를 활성화하고, 주소를 설정
hw class address : 인터페이스를 멀티캐스트 플래그로 설정
address : 인터페이스에 IP 주소를 설정
txqueuelen length : 디바이스의 전송 큐 길이를 설정
5) 추가 설명
ifconfig 명령어는 네트워크 인터페이스의 설정을 변경할 수 있습니다. 먼저 -a 옵션으로 IP주소, 브로드캐스트 주소, 넷마스크 정보 등을 확인할 수 있습니다.
<인터페이스 활성화/비활성화>
# ifconfig eth0 up
# ifup eth0
# ifconfig eth0 down
# ifdown eth0
<기본 게이트웨이 설정>
# route add -net default gw 192.168.1.1
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:32:2c:43:4f:2b:3c
inet addr: 192.168.1.10 Bcast: 192.168.1.255 Mask: 255.255.255.0
inet6 addr: fd20:23f3:2944:fe3e:2eb0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:700 errors:0 dropped:0 overruns:0 frame:0
TX packets:200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:131768 (131.7 KB) TX bytes:23340 (23.3 KB)
Interrupt:10 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16434 Metric:1
RX packets:90 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10021 (10.0 KB) TX bytes:9002 (9.0 KB)
예) eth0 인터페이스에 네트워크의 IP와 넷마스크를 설정
# ifconfig eth0 192.168.1.30 netmask 255.255.255.0
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:32:2c:43:4f:2b:3c
inet addr: 192.168.1.30 Bcast: 192.168.1.255 Mask: 255.255.255.0
inet6 addr: fd20:23f3:2944:fe3e:2eb0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:700 errors:0 dropped:0 overruns:0 frame:0
TX packets:200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:131768 (131.7 KB) TX bytes:23340 (23.3 KB)
Interrupt:10 Base address:0x2000
<참고사항>
1. IP 알리아스 설정
eth0 인터페이스의 알리아스로 eth0:0을 설정합니다.
# ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0
# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr : 00:43:B4:29:2E:4D
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask: 255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU : 1500 Metric:1
2. 인터페이스 무차별 모드 설정 및 확인
무차별 모드는 사전적 의미와 같이 네트워크 내부에서 돌아다니는 모든 패킷 정보를 살펴볼 수 있습니다.
# ifconfig eth0 promisc
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:32:2c:43:4f:2b:3c
inet addr: 192.168.1.10 Bcast: 192.168.1.255 Mask: 255.255.255.0
inet6 addr: fd20:23f3:2944:fe3e:2eb0/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:58564 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:5626647 (5.3 MB) TX bytes:23340 (23.3 KB)
# ifconfig eth0 -promisc
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:32:2c:43:4f:2b:3c
inet addr: 192.168.1.10 Bcast: 192.168.1.255 Mask: 255.255.255.0
inet6 addr: fd20:23f3:2944:fe3e:2eb0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:58564 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:5626647 (5.3 MB) TX bytes:23340 (23.3 KB)
11. mii-tool(네트워크 상태 확인) |
1) 경로 : /sbin/mii-tool
2) 요약 : 네트워크 인터페이스 상태를 확인
3) 사용 방법 : mii-tool [옵션] 인터페이스
4) 옵션
-v, --verbose : 상세한 정보를 출력
-V, --version : 버전 정보를 출력
-R, --reset : MII를 기본 설정으로 초기화
-r, --restart : 자동으로 재시작
-w, --watch : 인터페이스를 감시하고 변경되는 링크 상태를 출력
-l, --log : -w 옵션과 함께 링크 상태를 감시할 경우 표준 출력 대신에 로그 파일에 저장됨
-F media, --force=media : 자동 설정을 off, 강제로 MII를 either 100baseTx-FD, 100baseTx-Hd, 10baseT-FD, 10base-T-HD로 변경
-A media, ... --advertise=media, ... : 자동 설정을 다시 켜고 자동 설정을 시작, 지정된 미디어 기술만을 알림
5) 추가 설명
mii-tool 명령어는 네트워크 인터페이스의 연결 상태와 속도를 확인할 수 있고, 강제로 포트 속도를 변경할 수 있습니다.
포트 속도 | 설명 |
10baseT-HD | 10 MB Half Duplex |
10baseT-FD | 10 MB Full Duplex |
100base-Tx-HD | 100MB Half Duplex |
100ba | eTx |
FD | 100 MB Full Duplex |
-v 옵션으로 현재 네트워크 인터페이스 속도를 자세히 확인할 수 있습니다.
# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 08:00:17, model 1 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 10baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertisiong: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
-F 옵션으로 10 MB Half Duplex 속도로 변경합니다.
# mii-tool eth0 -F 10baseT-FD
# mii-tool
eth0: negotiated 10baseTx-FD, link ok
자동 설정으로 변경하고 동작을 확인합니다.
# mii-tool etho -r
# mii-tool
eth0: negotiated 100baseTx-FD, link ok
12. nc(네트워크 보기) |
1) 경로 : /bin/nc
2) 요약 : 네트워크 연결 내용을 출력
3) 사용 방법 : nc [옵션] [호스트네임] [포트[s]]
4) 옵션
-4 : IPv4를 이용
-6 : IPv6를 이용
-D : 디버그 소켓 옵션을 활성화
-h : 사용법 출력
-i interval : 포트 스캔 시 지정한 초만큼 지연 시간을 둠
-l : 듣기 모드로 실행
-n : 호스트명과 포트를 이름이 아닌 숫자로 받음
-P proxyuser : 프록시 인증을 위한 사용자 명을 지정
-p port : 원격 접속을 위한 로컬의 포트를 지정
-q secs : 표준 입력이 끝난 후에 지정한 초(secs)만큼 기다린 후에 종료(-1은 대기 상태에서 빠져 나오지 않음)
-r : 원격 포트를 랜덤으로 함
-s source_ip_address : 패킷을 보내는 인터페이스의 Ip 주소를 지정
-T ToS : ToS(Type of Service)를 지정
-C : 라인의 끝을 CRLF로 처리
-U : 유닉스 도메인 소켓을 이용
-u : UDP 모드로 지정
-v : 상세한 정보를 출력
-w timeout : 접속이나 표준 입력이 지정한 시간(timeout) 동안 대기 상태라면 종료
-x addr[:port] : 프록시 주소와 포트를 지정
-z : 아무 데이터도 전송하지 않고 단지 리스닝 상태의 데몬을 스캔
5) 추가 설명
nc 명령어는 netcat의 약자로 TCP 연결, UDP 패킷 보내기, TCP와 UDP 포트 검색, 포트 스캐닝, IPv4나 IPv6 등의 네트워크 연결 정보를 출력합니다.
아래는 -l 옵션을 사용하여 지정된 1234 포트를 리스닝합니다.
$ nc -l 1234
127.0.0.1의 1234 포트에 접속해서 리스닝 합니다.
$ nc 127.0.0.1 1234
위의 지정한 결과값을 리다이렉트하여 파일로 저장합니다.
$ nc -l 1234 > result.out
nc는 호스트의 특정 포트를 지정할 수 있습니다. 아래는 대상 호스트의 포트 중 10-12까지를 스캔할 수 있습니다. 출력문을 살펴보면 www.gmail.com 서버는 80포트(tcp/www)가 외부로 열러 있는 상태 입니다.
$ nc -v -w 3 -z www.gmail.com 78-80
nc: connect to www.gmail.com port 78 (tcp) timed out : Operation now in progress
nc: connect to www.gmail.com port 79 (tcp) timed out : Operation now in progress
nc: connect to www.gmail.com port 79 (tcp) timed out : Operation now in progress
nc: connect to www.gmail.com port 79 (tcp) timed out : Operation now in progress
nc: connect to www.gmail.com port 79 (tcp) timed out : Operation now in progress
Connection to www.gmail.com 80 port [tcp/www] succeeded!
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 네트워크 명령어 6탄(rdate, route, tcpdump, traceroute, whois) (0) | 2020.01.23 |
---|---|
[RHEL6] 네트워크 명령어 5탄(netstat, nslookup, ntpdate, ping) (0) | 2020.01.23 |
[RHEL6] 네트워크 명령어 3탄(ftp, host, hostid, hostname) (0) | 2020.01.22 |
[RHEL6] 네트워크 명령어 2탄(dig, dnsdomainname, ethtool) (0) | 2020.01.22 |
[RHEL6] 네트워크 명령어 1탄(arp, arping) (0) | 2020.01.02 |
댓글