Category: Linux

  • cloudflared proxy-dns

    Mikrotik 공유기의 DoH를 이용하고 있으나 간혹 에러가 로그에 기록된다. 사용에 문제가 있지는 않다. 추정 가능한 원인이은 동시에 여러 DNS 쿼리가 발생하는 것에 대하여 공유기가 제때에 처리를 못하기 때문이다. 그래서 가장 쉽게 DoH를 설정하는 방법으로 cloudflared 의 proxy-dns 기능을 이용하였다. 공유기가 아무리 특정 목적에 최적화되었다고 하지만 DoH 과정의 복잡한 과정까지 처리하기엔 모자란게 아닐까 생각했다.

    늘 하던대로 Docker 환경에서 별도의 컨테이너를 만들어서 실행하기로 한다. DNS는 UDP 53를 이용하지만, 이 포트만을 이용하는게 아닌 것 같다. 생각해보면 HTTPS를 이용하니까 443 포트도 이용할 것이다. 그래서 -p 가 아닌 –net=host로 지정했다.

    sudo docker run -id --restart always --net=host --name doh debian:latest

    우선 github에서 최신 버전을 찾아서 다운 받는다. Debian이니까 편하게 deb 을 받아서 dpkg 로 설치한다. 이러면 chmod보 적당한 path에 이동시키는 것도 하지 않아도 된다.

    wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    dpkg -i cloudflared-linux-amd64.deb

    다음으로 실행. 마지막에 &는 빼도 되지만, 도커에 접근해서 무엇인가 설정을 바꾸기 위해서는 &를 이용해서 백그라운드에서 실행하는게 좋다.

    cloudflared proxy-dns --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query --address 0.0.0.0 &
  • ftp 와 lftp

    ftp와 lftp의 주요한 차이점 중 하나.

    ftp는 서버가 응답하지 않으면 종료된다.

    lftp는 서버가 응답하지 않으면 계속 시도한다.

  • 특정 폴더들을 제외하고 어떤 파일을 tar로 묶기

    제목이 길다.

    R이건 Python 이건 스크립트를 주기적으로 백업해 두어야 나중에 큰 사고를 피할 수 있다. 특정 폴더를 제외하고 파일을 tar로 묶는 방법은 보통 2가지 방법이 있다. tar로 묶으면서 제외시키거나 find 로 제외할 폴더를 제외하면서 찾고 tar로 묶거나.

    인터넷 검색과 코파일럿 등 여러 방법을 다 시도해 보았다. 다음의 방법이 가장 직관적이고 잘 동작한다.

    find /root -type f -name "*.*py*" -not -path "*/.ipynb_checkpoints/*" -not -path "*/.local/*" -not -path "*/__pycache__/*" -not -path "*/.cache/*"  -not -path "*/.jupyter/*" | tar -cvf /var/tmp/${filename} -T -

    주의할 점은 줄 바꿈을 하지 말 것.

  • autologin on alpine linux

    alpine linux 에서 부팅 완료 후 root 로그인 하고 tty-clock을 실행하고 싶었다. 여러 방법을 시도하다 겨우 성공했다.

    기본적으로 아래의 내용을 /etc/inittab 에 넣어주면 된다. 그런데 위치가 문제다. 가장 마지막에 입력해 주면 로그인 화면이 계속 나온다. 그래서 상당히 윗 부분에 입력해 주었더니 동작했다.

    tty1::respawn:/bin/login -f root

    .bashrc 파일이 기본적으로 없기 때문에 /etc/profile 에서 tty-clock 명령어를 입력해 준다.