네트워크 툴

netstat

  • 구식 명령어, 이제 안 씀

ss

  • socket statistics
$ sudo ss -n # --numberic
$ sudo ss -nt # TCP connection 확인
$ sudo ss -a # --all
$ sudo ss -l # --listening
$ sudo ss -e # --extended
$ sudo ss -o # --options
$ sudo ss -m # --memory
$ sudo ss -p # --processes (일반 권한으로는 x, root 권한을 사용하자)
$ sudo ss -4 # --ipv4
$ sudo ss -6 # --ipv6
$ sudo ss -u # --udp
$ sudo ss -x # --unix
$ sudo ss -s # statistics
$ sudo ss -f FAMILY # --family=FAMILY
$ sudo ss state <tcp state> # tcp state의 상태 확인

TCP State Transition Diagram

  • 3way handshakeTCP 접속을 위해 serverclientsyn, ack를 주고 받는 과정.
  • 4way handshakeTCP 접속 close를 위해 FIN 신호를 주고 받는 과정.
    • 문제가 주로 여기서 터진다.
    • 특히 close-wait(close 함수를 추가하지 않은 버그), fin-wait-2

querying

  • ping [-c count] [-i interval] [-s size] [-t ttl] target→ 상대 host(target)의 응답 확인
    • [-c count]c번 쏘겠다.
    • [-i interval]i(초)간격으로 쏘겠다.

traceroute

  • 패킷의 도달 경로를 확인

arp

  • ARP테이블 → IP주소MAC주소의 매칭 테이블(변환)
  • arp -s <MAC adress> <IP address> → 수동으로 주소를 넣어줄 수도 있음.

resolver

  • name service라고 부른다.
  • IP address 혹은 hostname을 해석한다.
  • /etc/resolv.conf에 저장된다.
  • dig [@server] <www.xxx.com>명령어로 사용

유명한 nameserver

  • 1.1.1.1 → Cloudflare DNS
  • 8.8.8.8 → google DNS

ethtool

  • ethtool <장치명> → 장치에 대한 정보 표시
  • 간혹 시스템이 느려지는 경우, Duplex문제일 경우가 크다.
    • ethtool <장치명>에서,
    • Duplex : Half일 경우, Duplex : Full로 바꿔주면 해결될 수 있다.

ssh

ssh server

  • ssh→ Secure SHell
    • sshdssh daemon, 즉 ssh server를 의미.
    • sshssh client, ssh명령어가 ssh client CLI 유틸리티이다.
  • 기본적으로 Linuxssh가 설치되어 있다(openssh).

sshd 서버 준비 작업

  • sshd 설치 여부 확인
$ sudo apt list openssh*
# openssh-client, openssh-server/... 가 없는 경우는 설치해야 한다.
  • sshd 서비스 실행 여부 확인
$ sudo systemctl status sshd
  • ssh port가 방화벽에 허용되어 있는지 확인
$ sudo -nlt # tcp listen  상태인지 확인
$ iptables -mL # 방화벽에 허용되어 있는지 확인
$ ufw enable # 방화벽 해제
$ ufw allow 22/tcp # 방화벽 다시 설정

ssh client

  • ssh [-p port] [username@]<host address>
  • ssh-keygen -N <password> → 보안을 위해 key 생성

HTTP

curl

  • url을 기반으로 통신하는 기능 제공
    • CLI tool과 library제공

    • URL기반 다양한 프로토콜 지원

      $ curl <URL> # URL 출력
      $ curl -o manual.html <url> # URL을 manual.html 파일로 저장
      $ curl -C - -o <...iso> # iso파일을 다운로드 
      $ curl v2.wrrt.in/Seoul # API도 사용 가능

wget

  • curl과 비슷하지만, 파일 다운로드에 특화되어 있음

nc

  • netcat, networkcat을 한다.
  • server, client 양쪽 기능이 가능

무선 네트워크

무선 네트워크 활성화 여부 확인

$ nmcli radio
$ nmcli radio on # , off -> WIFI 켜기, 끄기
$ rfkill list # soft blocked = sw 비설정, Hard blocked = hw 없음 or 비활성화

시스템이 wifi 있는지 확인하기

  • nmcli dev [list]list는 생략 가능, 구형에서는 붙여 주기

connect

  • nmcli dev wifi connect <SSID|BSSID> [password<pass>]

disconnect

  • nmcli d disconnect <wifi name>

WiFi hotspot

  • 간단하게 사용할 때는 nmcli, 여러 기능을 사용하려면 전용 프로그램 hostapd 사용
$ nmcli c add type wifi ifname ‘*’ syhotspot autoconnect no ssid <hotspot name>
$ nmcli c mod syhotspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared ipv4.addresses 192.168.100.1/24
$ nmcli c mod syhotshpot 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.pak <pw>
$ nmcli c up syhotspot
profile
올해로 26세

0개의 댓글