linux

linux ip 할당 및 윈도우 sftp 통신

HHH1 2021. 4. 26. 02:00

먼저 통신을 하려면 기본적인 ip에 대해서 알아야한다. 

c class

ip 주소는 컴퓨터마다 할당된 주소로 컴퓨터를 구분할수 있게 해서 통신을 가능하게 해 준다.

호스트 부분으로 컴퓨터를 구분합니다. 보통 C class로 한 공간 내에서만 쓴다.

 

서브넷 마스크는 ip주소의 네트워크 대역인지 , 호스트의 주소인지 구분할수 있게 해 준다.

 

ex) 255.255.255.0 은 앞의 세자리는 네트워크 대역이고 나머지 255가 아닌 0 부분은 호스트 부분이다.

 

기본 게이트웨이 는 외부와 통신을 할 때에 필요한 주소로, 보통 라우터, 공유기의 주소이다.

라우터가 내 컴퓨터와 서버간 중간 다리 역할을 한다.

 

DNS 서버는 도메인 주소를 ip주소로 번역해주는 서버의 위치를 나타낸다.


*** IP 배정

 

이제 vm virturalbox를 이용해서 통신 설정을 해보자.

 

먼저 버츄얼 머신을 실행시키고 아래쪽의 모니터 모양을 눌러 네트워크 설정을 해준다.

 

그럼 이런 화면이 뜰텐데 호스트 전용으로 바꿔준다.

 

그리고 아래쪽 이름 부분을 사용할 가상 랜 카드를 선택해준다.

 

이제 가상머신의 ip 수동설정을 위해서 ip 자동 설정해주는  DHCP 를 꺼짐으로 설정해줄 것이다,

 

# cd /etc/netplan 을 통해 DHCP 설정 파일이 있는 디렉터리로 이동해준다.

# cd /etc/netplan

 

이동했다면, ls로 파일 이름을 확인하고, vi 에디터를 통해 수정해준다.

# pwd
# ls 
# vi 00-installer-config.yami

 vi 에디터는 i 로 수정이 가능하다.  i 를 눌러서 DHCP 부분을 NO 로 바꿔주고 Esc 를 누른 후

 :wp! 로 저장하고 빠져나와 준다.

 

마무리로 vi 로 수정한 작업이 잘 됐는지 디버그를 해 준 후 적용을 해 줄것이다.

 

# netplan --debug genurate 를 통해 디버그를 해주고, netplan apply 를 통해서 적용을 해 준다.

 

# netplan --debug generate

# netplan apply

 

 

이제 ip를 할당해 줄 것인데, 윈도우 cmd에 ipconfig /all 명령어를 통해서 선택한 가상 랜 카드의 ip 주소를 확인해 준다.

cmd

c: > ipconfig /all

 

 

확인해 준 후 가상 랜카드의 ip 주소를 기억해둔다..

 

그 다음으로 주소를 변경할 장치의 이름을 알아야하는데, 가상리눅스에 ip addr 명령어로 장치의 이름을 확인해준다.

# ip addr

 

이 장치의 이름은 enp0s3 

 

추가하는 명령어는  # ip addr add  로 뒷부분에 이어서 설정할 ip 주소와 서브넷 마스크 , 장치의 이름을 입력해준다.

# ip addr add
# ip addr del //삭제

 

# ip addr add 192.168.56.20/24 dev enp0s3

(뒤의 24 부분은 서브넷 마스크의 2진수인 1의 갯수를 나타내는데 이를 CIDR 라고 한다.)

 

그 다음 장치를 활성화를 시켜주기 위해서 # ip link set enp0s3 up 명령어로 활성화 시켜준다.

# ip link set enp0s3 up

# ip link set enp0s3 down

 

 

(활성화를 끄는 방법은  # ip link set enp0s3 down 명령어를 입력하면 된다.)

 

이제 ip가 설정되어 통신이 가능할 것이다.

단, 리눅스가 켜져있는 상태에만 적용된다.

이렇게 명령어로 하는 설정은 껐다 키면 초기화된다는 것을 유의하자.


cmd 를 통해서 자신의 실제 랜 카드의 ip 주소를 알아보고, 실제 통신이 되는지 리눅스에 ping 통신이 되는지 확인한다.

 

만약 안된다면 윈도우 방화벽 때문이다.

 

반대로 윈도우cmd 에서도 확인해준다.

 

패킷을 주고 받는 것을 볼 수 있다.

 

putty로 접속하는 방법은 putty의 ip 입력창에 리눅스의 주소를 입력해주면 된다.


***SFTP

 

윈도우로 파일을 가져오는 방법은 sftp로 sftp를 입력해주고 root@ 뒤에는 리눅스의 주소를 입력해준다. 

cmd
$ sftp root@192.168.56.20

입력해주면 패스워드를 입력하라는 메세지가 뜬다.

리눅스의 패스워드를 입력하면 연결이 된다.

 

ls 를 통해서 찾아보면 이제 리눅스의 파일을 볼 수 있게된다.

저 위치는 기본적으로 접속자의 홈 디렉터리로, 리눅스에서 저기에 파일을 생성하면 볼 수 있다.

 

 

 touch 를 통해 리눅스에 파일을 생성하고 sftp 로 확인해보자. '

 

sftp는 암호화 통신이기에 실무에서도 자주 쓰이는 파일공유프로토콜이다.

 

ls 로 확인해보면 파일이 존재하는 것을 알 수 있다.

물론 cd 로 내부 디렉터리를 돌아다니며 사용할수도 있다. 

 

사용법은 get , put , bye 가 있다.

 

get  은 리눅스의 파일을 가져오는 것

put 은 윈도우의 파일을 리눅스에 넣어주는것

bye 는 sftp접속을 끝내는 것

 

get 을 써주고 뒤에 가져올 파일 명을 써주면 된다.

$ get test.txt

 

put 을 써주고 붙여줄 파일명을 써 준다.

파일의 위치는 기본적으로 윈도우 사용자의 파일이다.

$ put hihihihi.txt

bye 를 통해서 통신을 끊어줍니다.

 

$ bye

 


***root ssh 접속 설정

 

만약에 안된다면, ssh root 접속을 확인해 보자. 

확인하는 경로는 etc/sshd/ssh_config로, ssh에 관한 정보가 이 파일에 저장되어있다.

vi 에디터를 써서 파일을 수정해 설정을 바꿔주자.

# vi etc/sshd/ssh_config

 

permitRootLogin 옵션을 찾아서 yes 로 바꿔준다.

 

없다면 따로 써주고. esc + :wq! 로 빠져나와준다.

 

적용을 위해서 ssh 를 재시작하여 적용해준다.

 

# systemctl restart ssh

이제 적용이 되어 연결이 될 것이다.