Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter9 3 진형준 #39

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions chapter09/09.파일 전송하기/README.md
Original file line number Diff line number Diff line change
@@ -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 파일을 이어 받음 |
26 changes: 26 additions & 0 deletions chapter09/10.안전하게 파일 전송하기/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 안전하게 파일 전송하기

scp or sftp: 통신 내용을 암호화해서 원격 호스트 사이에 안전하게 파일을 전송

~~~shell
# barrel.exmple.com 호스트에 있는 maltman 사용자의 홈디렉터리에서 cocktail 파일을 현재 디렉터리로 복사하기
$ scp [email protected]:~/cocktail .
~~~
- 원격 접속 경로 인수: user@hostname:path



## scp 주요 옵션
| 옵션 | 설명 |
|---|---|
| -r | 디렉터리를 통째로 복사 |
| -p | 날짜나 파일 관련 정보를 가능한 한 그대로 복사 |

~~~shell
# remote-host 호스트의 user사용자 홈 디렉터리에 있는 file을 로컬 호스트의 현재 디렉터리에 전송
$ scp user@remote-host:file .

# remote-host 호스트에 안전하게 접속
$ sftp remote-host
~~~

Original file line number Diff line number Diff line change
@@ -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 디바이스 주소 일괄 삭제 |


21 changes: 21 additions & 0 deletions chapter09/12.인터넷 경로 설정하기/README.md
Original file line number Diff line number Diff line change
@@ -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 | 네트워크 인터페이스 경로 설정 |