diff --git "a/chapter09/09.\355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" "b/chapter09/09.\355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..1b53d46 --- /dev/null +++ "b/chapter09/09.\355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" @@ -0,0 +1,33 @@ +# 파일 전송하기 +ftp or lftp: FTP 사이트에서 파일을 다운로드하거나 호스트끼리 파일을 전송하고 싶을 때 사용 + +## FTP 사이트에 어떤 파일을 가져오는 방법 +1. $ ftp ftp.example.com 으로 접속 +2. 사용자명: anonymous 또는 ftp, 암호: 메일 주소 입력 +3. 성공시 ftp 프롬프트가 출력됨 +4. mget, mput 내부 명령어를 사용해서 파일을 가져오거나 전송함 + +## ftp, lftp 주요 내부 명령어 +| 옵션 | 설명 | +|---|---| +| open hostname | hostname 호스트에 접속 | +| close | 현재 접속한 호스트와 접속을 끊음 | +| quit | ftp 명령어 종료 | +| ls [dir] | dir 디렉터리 표시 | +| cd [dir] | dir 디렉터리로 이동 | +| mget filen | filen 파일을 내 호스트로 전송 | +| mput filen | filen 파일을 상대방 호스트로 전송 | +| pwd | 현재 디렉터리를 표시 | +| ? | 사용 가능한 명령어 표시 | + +## ftp 주요 내부 명령어 +| 옵션 | 설명 | +|---|---| +| ascii | 전송 파일을 텍스트 파일로 지정 | +| binary | 전송 파일을 바이너리 파일로 지정 | +| rget file | file 파일을 이어 받음 | + +## lftp 주요 내부 명령어 +| 옵션 | 설명 | +|---|---| +| get -c file | file 파일을 이어 받음 | diff --git "a/chapter09/10.\354\225\210\354\240\204\355\225\230\352\262\214 \355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" "b/chapter09/10.\354\225\210\354\240\204\355\225\230\352\262\214 \355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..b78d896 --- /dev/null +++ "b/chapter09/10.\354\225\210\354\240\204\355\225\230\352\262\214 \355\214\214\354\235\274 \354\240\204\354\206\241\355\225\230\352\270\260/README.md" @@ -0,0 +1,26 @@ +# 안전하게 파일 전송하기 + +scp or sftp: 통신 내용을 암호화해서 원격 호스트 사이에 안전하게 파일을 전송 + +~~~shell +# barrel.exmple.com 호스트에 있는 maltman 사용자의 홈디렉터리에서 cocktail 파일을 현재 디렉터리로 복사하기 +$ scp maltman@barrel.example.com:~/cocktail . +~~~ +- 원격 접속 경로 인수: user@hostname:path + + + +## scp 주요 옵션 +| 옵션 | 설명 | +|---|---| +| -r | 디렉터리를 통째로 복사 | +| -p | 날짜나 파일 관련 정보를 가능한 한 그대로 복사 | + +~~~shell +# remote-host 호스트의 user사용자 홈 디렉터리에 있는 file을 로컬 호스트의 현재 디렉터리에 전송 +$ scp user@remote-host:file . + +# remote-host 호스트에 안전하게 접속 +$ sftp remote-host +~~~ + diff --git "a/chapter09/11.\353\204\244\355\212\270\354\233\214\355\201\254 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \355\231\225\354\235\270, \354\204\244\354\240\225\355\225\230\352\270\260/README.md" "b/chapter09/11.\353\204\244\355\212\270\354\233\214\355\201\254 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \355\231\225\354\235\270, \354\204\244\354\240\225\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..003b196 --- /dev/null +++ "b/chapter09/11.\353\204\244\355\212\270\354\233\214\355\201\254 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \355\231\225\354\235\270, \354\204\244\354\240\225\355\225\230\352\270\260/README.md" @@ -0,0 +1,60 @@ +# 네트워크 인터페이스 확인, 설정하기 + +ifconfig: 컴퓨터에 연결된 랜이나 와이파이 같은 네트워크 인터페이스에 할당된 IP주소를 확인하거나 IP주소를 할당 (ip 명령어의 addr 객체를 지정해줘도 됨) + + +## IP 주소 확인 +~~~shell +## 현재 IP주소가 할당된 네트워크 인터페이스 표시 +$ ip addr show +$ ifconfig +~~~ + +- IP주소는 유일한 주소로 IANA(Ineternet Assigned Number Authority)가 관리 +- IP주소는 네트워크 주소와 호스트 주소로 구성됨 +- 기업이나 가정 내 LAN에서 자유롭게 사용하는 프라이빗 IP 주소는 호스트가 직접 인터넷에 접속할 수 없지만 NAT(Network Address Transfer) 기술을 사용해서 글로벌 IP주소가 할당된 호스트를 통해 인터넷에 접속 가능 + + +## IP 주소 할당 +~~~shell +## 컴퓨터에 이더넷 네트워크 어댑터가 존재하고 해당 인터페이스명이 eth0이라고 가정하고, 프라이빗 IP주소인 10.0.2.12(네트워크 주소 길이 24비트인 서브넷 마스크 255.255.255.0)을 설정하기. 슈퍼유저 권한으로 ip addr 명령어 또는 ifconfig명령어 사용가능 + +$ ip addr flush dev eth0 # eth0 인터페이스 주소를 모두 삭제 +$ ip addr add 10.0.2.12/24 dev eth0 # eho0 인터페이스에 IP 주소 할당 + +$ ipconfig eth0 inet 10.0.2.12 netmask 255.255.255.0 # ipconifg 명령어 사용 +~~~ + +- 요즘엔 DHCP(Dynamic Host Configuration Protocol) 기능이 있어서 호스트에 동적 IP주소가 할당됨 (수동 IP를 설정할 일이 거의 없음) +- 수동 IP설정을 해보려면 dhclient -r eth0 명령어를 실행해서 DHCP 를 해제해야함. (DHCP를 다시 유효화하려면 ip addr flush dev eth0로 IP주소를 삭제한 후 dhclient eth0 명령어 실행) + + +## 네트워크 인터페이스 설정 + +nmcli: 네트워크 인터페이스 설정 변경 + +컴퓨터를 부팅할 때, 호스트에 고정 IP주소를 할당하거나 DHCP를 통해 동적으로 할당받으려면, 부팅 스크립트를 설정해야함 +보통은 NetworkManager 데몬이 네트워크 인터페이스를 자동 설정하므로 DHCP를 사용한다면 설정이 필요 없음 + + +## ip 주요 옵션 +| 옵션 | 설명 | +|---|---| +| -s | 상세 정보를 표시 | +| -f family | 네트워크 주소 종류 family를 inet, inet6, link 중에서 지정 | +| -r | 호스트명 표시 | + +## 주요 옵션 +| 옵션 | 설명 | +|---|---| +| -a | 모든 인터페이스 설정 표시 | + +## 주요 옵션 +| 옵션 | 설명 | +|---|---| +| show dev device | device 디바이스 주소 표시 | +| add addr dev device | device 디바이스에 addr 주소 추가 | +| del addr dev device | device 디바이스에서 addr 주소 삭제 | +| flush dev device | device 디바이스 주소 일괄 삭제 | + + diff --git "a/chapter09/12.\354\235\270\355\204\260\353\204\267 \352\262\275\353\241\234 \354\204\244\354\240\225\355\225\230\352\270\260/README.md" "b/chapter09/12.\354\235\270\355\204\260\353\204\267 \352\262\275\353\241\234 \354\204\244\354\240\225\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..683d13c --- /dev/null +++ "b/chapter09/12.\354\235\270\355\204\260\353\204\267 \352\262\275\353\241\234 \354\204\244\354\240\225\355\225\230\352\270\260/README.md" @@ -0,0 +1,21 @@ +# 인터넷 경로 설정하기 + +route: 인터넷으로 호스트와 통신하려면 라우팅 테이블(경로표)가 필요함. 라우팅 테이블을 설정, 표시할 수 있음 (ip 명령어로 route 객체 사용가능) + +## ip 주요 옵션 +| 옵션 | 설명 | +|---|---| +| show dev device | device 디바이스의 라우팅 테이블 표시 | +| get addr | addr 주소를 향한 경로를 표시 | +| add addr1 via \| addr2 dev device | device 디바이스의 라우팅 테이블에 addr1을 향한 경로 addr2를 추가 | + +## route 주요 옵션 +| 옵션 | 설명 | +|---|---| +| -n | 호스트명이 아니라 IP주소로 표시 | +| add entry | 라우팅 테이블에 entry 추가 | +| del entry | 라우팅 테이블에 entry 삭제 | +| -net target | 엔트리 네트워크를 target으로 지정 | +| -host target | 엔트리 호스트를 지정 | +| netmask mask | 엔트리 서브넷 마스트를 지정 | +| dev interface | 네트워크 인터페이스 경로 설정 |