CS/Linux
-
Xrdp 설치시 검은화면 오류CS/Linux 2024. 10. 9. 02:15
우분투에 Xrdp를 설치하고 Microsoft remote desktop으로 접속을 하면 검은화면만 보이는 현상이 생긴다.이는 동일한 계정으로 로그인이 되어있는 경우 발생하는데 굉장히 번거롭다.xfce4를 설치하여 해결할 수 있다. 1.xfce4 설치sudo apt updatesudo apt install xfce4 xfce4-goodies 2.xfce 환경 설정echo "xfce4-session" > ~/.xsession 3.startwm.sh 수정sudo nano /etc/xrdp/startwm.sh#해당 파일의 마지막 부분에 startxfce4 추가 4. 서비스 재 시작sudo systemctl restart xrdp 이후 접속하면이와 같은 화면으로 접속이 된다. 이는 xfce4로 접속한 화면이며 ..
-
(이것이 우분투 리눅스다) 프록시 서버CS/Linux 2024. 7. 14. 00:10
프록시 서버란?프록시 서버는 프록시라는 이름에서 알 수 있듯이 대리라는 뜻을 가지고 있다.즉, 실제 서버를 대신해서 클라이언트에게 서버역할을 해주는 서버이다. 서버 프록시 클라이언트 다음과 같이 3개의 구조로 설명할수 있는데원래는 클라이언트가 서버에게 데이터를 요청하면 서버는 받아서 데이터를 전송해준다.하지만, 프록시를 사용하면 클라이언트가 프록시 서버에 요청하면 서버에게 대신 데이터를 요청한다. 이렇게 하면 클라이언트는 전보다 더 빠르게 서버를 이용할 수가 있다.왜냐하면 자주 요청하는 데이터에 대해서는 프록시 서버가 캐시라는 곳에 저장하여 서버에 물어볼 필요 없이 바로클라이언트에게 전송할수 있기 때문이다. 즉, 프록시 서버는 좀 더 빠른 인터넷 환경 구축을 위해 사용한다. 구현 방법구현 방법 역시 ..
-
(이것이 우분투 리눅스다)DHCP 서버CS/Linux 2024. 7. 13. 23:42
DHCP 서버란?DHCP 서버는 자동적으로 IP 주소를 할당해주는 서버이다.IP주소 할당에는 고정 IP 주소 할당과 동적 IP주소가 있다.DHCP 서버를 이용하면 컴퓨터가 부팅될때마다 동적으로 매번 다른 IP 주소를 할당 받을 수 있다. 작동방식기존의 다른 서버들의 경우 서버의 IP 주소를 알고 있어야 했다.하지만 DHCP 서버는 자신이 담당하고있는 네트워크 안에서 동작하기 때문에 서버의 IP 주소를 몰라도 된다. 동작순서는 다음과 같다.우선 같은 네트워크 영역에 DHCP서버와 클라이언트가 있다는 가정하에클라이언트가 컴퓨터를 부팅하면 자동으로 자신이 속한 네트워크 영역에 DHCP 브로드캐스트를 날린다.그럼 DHCP 서버가 이를 수신하여 IP 주소를 할당하는 방식이다. 실습DHCP 서버를 만드는 실습을 한..
-
리눅스 소켓프로그래밍- 멀티세션 구현을 위한 스레드CS/Linux 2024. 5. 7. 13:24
멀티세션을 구현해서 하나의 서버가 여러대의 클라이언트 응답을 처리하기 위해멀티스레드 방식을 이용할 것이다.스레드란, 프레서스의 작업 단위로서 스레드 생성시 따로 메인 함수를 생성해야한다. 쓰레드 생성 함수int pthread_create( pthread_t *restrict thread, const pthreaed_attr_t *restric attr, void *(*start_routine)(void*), void *restrict arg);thread: 생성할 쓰레드의 ID 저장을 위한 변수의 주소값 전달attr: 쓰레드에 부여할 특성 정보의 전달을 위한 매개변수start_routine: 쓰레드의 main 함수 역할을 하는 함수의 주소 값 전달arg: 세번째 인자를 통해 등록된 함수가 호출될 때..
-
리눅스 소켓프로그래밍_UDP기반 서버/클라이언트 구현CS/Linux 2024. 4. 29. 14:22
TCP는 압축파일 전송 같이 신뢰성이 중요한 경우 사용되지만UDP는 실시간 영상 송출 처럼 신뢰도보단 속도가 중요한 경우에 사용된다. UDP기반 소켓 프로그래밍은 TCP와 다르게 연결 설정의 과정이 없다.즉, listen() 함수와 accept함수를 따로 구현할 필요는 없다.또한 TCP에서는 소켓과 소켓의 관계가 1대1이다.클라이언트가 10개라면 서버의 소켓도 10개가 존재해야했다.하지만 UDP는 1개의 소켓으로 여러 클라이언트들을 다룰수 있다는 점에서 차이가 있다. 함수 소개TCP에서는 클라이언트에서 주소 정보를 따로 추가하는 과정이 필요하지만 UDP는 비연결지향형이기 때문에 데이터를 전송할때마다반드시 목적지의 주소정보를 별도로 추가해야한다. ssize_t sendto(int sock, void *bu..
-
리눅스기반 소켓프로그래밍_기본적인 함수설명CS/Linux 2024. 4. 28. 17:48
소켓이란?- 소켓은 데이터의 송수신 방법으로 소켓을 통해서 컴퓨터간 데이터를 주고 받을 수 있다. 파일 디스크립터-할당 받은 파일또는 소켓에 부여되는 정수를 의미한다.0: 표준 입력1: 표준 출력2: 펴준 에러 소켓 함수의 소개1) 서버#include c언어에서 소켓 프로그래밍을 위한 헤더파일이다. int socket(int domain, int type, int protocol)-소켓을 생성하는 함수, 성공시 파일 디스크립터, 실패시 -1을 반환한다.domain: 소켓이 사용할 프로토콜 체계 정보전달type: 소켓의 데이터 전송방식에 대한 정보전달-tcp 방식은 SOCK_STREAM udp 방식은 SOCK_DGRAM을 사용한다.protocol: 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달, 주로 0..
-
우분투 리눅스 고정 IP주소 할당하기CS/Linux 2024. 4. 6. 02:34
/etc/netplan 에 존재하는 00.~~~.yaml파일을 수정해준다. network: version:2 renderer: networkd ethernets: ens18: addresses: - 192.168.10.212/24 gateway4: 192.168.10.1 nameservers: addresses: [1.1.1.1, 1.0.0.1] 입력하고자 하는 Ip주소를 입력하고 올바른 게이트웨이주소를 입력한다. 올바르지 못한 게이트웨이주소를 입력하는 경우 부팅 속도가 느려질수 있다. 이후 저장후 netplan apply를 실행하고 재부팅 한다. 고정 DNS 서버 설정하기 /etc/resolv.conf는 동적 dns 서버 설정이다, 고정설정의 경우, vi /etc/network/interfaces 에서..
-
(이것이 우분투 리눅스다)셸 스크립트 프로그래밍CS/Linux 2024. 3. 21. 22:40
셸 - 사용자가 입력한 명령을 해석해 커널에 전달하거나, 커널의 처리 결과를 사용자에게 전달하는 역할을 한다. 우분투는 bash shell을 주로 사용한다. 환경변수 echo $환경변수 이름 이렇게 해서 명령을 실행하여 설정된 환경변수의 값을 확인 할 수 있다. 환경변수의 값을 변경하려면 export 환경변수=값 형식을 실행한다. 셸 스크립트 프로그래밍 작성해보기 -셸 스크립트는 c언어와 유사하다. 리눅스 시스템이 c로 작성이 되었기 때문이다. vi로 프로그램을 작성할수 있다. #! /bin/sh -> #!는 특별한 형태의 주석으로 bash를 사용한다는 뜻이다. 꼭 써주어야한다. echo "사용자 이름: " $USER -> echo는 화면에 출력한다는 뜻을 가지며 echo "홈 디렉터리: " $HOME ..