셸 터미널 을 통 해 socket 파일 을 직접 열 어 TCP, UDP 통신 을 진행 합 니 다.

1532 단어 학습 노트linux
Liux 에 특별한 파일/dev/tcp 가 있 습 니 다. 이 파일 을 열 면 socket 호출 을 보 내 는 것 과 같 습 니 다. socket 연결 을 만 듭 니 다. 이 파일 을 읽 고 쓰 는 것 은 이 socket 연결 에서 데 이 터 를 전송 하 는 것 과 같 습 니 다.
  • /dev/tcp 를 열 고 읽 기와 쓰기 로/dev/tcp 를 열 고 서버 이름 을 지정 합 니 다. www. csdn. net, 포트 번 호 는 80 이 고 설명 자 는 8
  • 입 니 다.
    exec 8<>/dev/tcp/www.csdn.net/80
    

    명령 해석: exec 이 명령 을 수행 하 는 것 을 표시 합 니 다.8 사용자 가 지정 한 파일 설명자 입 니 다.<><> 로 분해 되 어 읽 기와 쓰기, 즉 RW 형식 으로 열 리 고 장 치 를 /dev/tcp/$DEST/80 로 열 어야 하 며, 여기 서 포트 를 선택 하면 80 입 니 다. HTTP 요청 을 보 내 려 고 하기 때문에 포트 80 을 대상 으로 합 니 다.
    메모:/dev/tcp 자체 가 존재 하지 않 습 니 다./dev 에서 이 장치 노드 를 볼 수 없습니다.
  • 실제로 이 장치 노드 는 시스템 에 존재 하지 않 습 니 다. bash 에서 열 림 /dev/tcp 을 통 해 socket 의 기능 을 얻 는 것 은 실제 적 으로 bash 의 특성 이지 시스템 의 기능 이 아 닙 니 다.
  • 파일 에 데 이 터 를 기록 하고 파일 에 데 이 터 를 마음대로 쓰 십시오: echo - e "GET"> & 8
  • echo -e "GET">&FD
    

    해석: echo - e 는 특정한 형식 으로 보 냅 니 다 (- e 가 바 이 너 리 인지 ASCII 인지 잊 었 습 니 다).>& 흐름 의 흐름 을 나타 내 고 어느 fd 에 기록 하 는 지 나타 낸다. 그 중에서 & 의 역할 은 구분 > 의 큰 의미 이 고 > 크기 를 비교 하여 >& 흐름 의 방향 을 나타 낸다.
  • 파일 을 읽 고 되 돌아 오 는 정 보 를 읽 습 니 다: catxxxx 나 옵 니 다.
  • Attention 일부 버 전의 bash 는 기본적으로 /dev/tcp 에 대한 열 림 을 지원 하지 않 을 수 있 습 니 다.이 때 bash 를 컴 파일 할 때 인 자 를 추가 할 수 있 습 니 다. --enable-net-redirections 그리고 bash 를 다시 컴 파일 하면 됩 니 다.
  • 좋은 웹페이지 즐겨찾기