241019 TIL
2024년 10월 19일 작성
Locale 이란?
-
사용자 인터페이스에서 사용되는 언어, 지역 설정, 출력 형식 등을 정의하는 문자열이다.
-
unix, linux 같은 POSIX 기반의 시스템에서는 같은 형식을 공유하고 있다.
-
macOS를 비롯한 Darwin 계열 운영체제들도 POSIX 호환이 되기 때문에 같은 형식의 로케일 문자열을 사용한다.
-
로케일 형식은 다음과 같다
- ko_KR.UTF-8 이면 language가 ko(ISO 639-1 표준 형식), terretory가 KR(ISO 3166-1 표준 형식), codeset이 UTF-8인 것이다.
- 내 노트북 로케일은 C로 설정되어있는 걸 볼 수 있었다. 이는 default 값으로, POSIX locale 이라고도 알려져있다.
-
로케일 환경변수 우선순위: LC_ALL > 개별 변수 > LANG
-
가장 우선순위가 낮은 환경변수:
LANG
LANG을 한국어로 바꾸고 나서 locale 을 실행해보면 모두 값이 바뀌어있는 것을 알 수 있다.
여기서, LC_TIME 값만 영어로 바꿔보겠습니당.
date는 LC_TIME 이용하므로 영어로 시간을 보여주겠죠
다시 돌아와버려.
-
kali 에서 crunch 사용 시 setlocale 에러
- kali 에서 crunch 를 사용하려다가 setlocale() 에서 실패했다는 에러 때문에 locale 설정을 다시 해봤다. 근데 다시 해도 잘 안돼서 해보니
mac에서 ssh 로 kali에 접속하면 mac shell의 locale 와 꼬여서 일어나는 문제였다.아무리 내 zsh 환경변수를 바꿔도 안되는걸 보니 . . 상관없는 듯 아래에서 해결!!-
crunch 소스코드를 보면 다음과 같이 에러처리를 함 https://salsa.debian.org/debian/crunch/-/blob/debian/master/crunch.c?ref_type=heads#L2379
setlocale(LC_ALL, "")
은 LC_ALL 그러니 로케일과 관련한 모든 로케일 값들을, “” → 해당 기기의 환경변수에서 가져온다는 뜻이다.그런데 이 함수가 NULL을 반환하는 것은 환경변수에서 로케일 값을 찾을 수 없다는 의미인 것이다.
아 근데 ㅇㅔ러 처리를 이렇게 해놓으면 내가 어떻게 해결해요.
-
왕 해결: https://bbs.archlinux.org/viewtopic.php?pid=1914212#p1914212 특정 로케일을 사용하려면
/etc/locale.gen
파일에서 그 로케일을 주석 해제하면 된다.-
dpkg-reconfigure locales 시 en_US.UTF-8 을 설정했는데도 주석이 해제되지 않았던 이유 추측 (GPT)
dpkg-reconfigure locales
를 실행했을 때en_US.UTF-8
을 선택했는데도/etc/locale.gen
파일에서 주석이 해제되지 않았던 이유는 여러 가지가 있을 수 있습니다. 몇 가지 가능한 원인은 다음과 같습니다:1. 설치된 로케일 패키지의 문제
dpkg-reconfigure locales
가 제대로 작동하지 않았거나, 선택한 로케일이 설치된 로케일 패키지에 제대로 반영되지 않았을 수 있습니다. 이 경우/etc/locale.gen
파일을 직접 수정하지 않으면 선택한 로케일이 반영되지 않습니다.2. 로케일 설정 과정에서의 오류
dpkg-reconfigure locales
과정 중 시스템에 따라 일시적인 오류나 충돌이 발생할 수 있습니다. 특히, 로케일 설정이 제대로 적용되지 않는 경우가 있는데, 이는 잘못된 파일 권한이나 손상된 설정 파일 등으로 인해 발생할 수 있습니다.3. 로케일 설정 업데이트 문제
로케일 설정 후, 시스템이
/etc/locale.gen
파일을 자동으로 업데이트하지 못하는 경우도 있습니다.dpkg-reconfigure
명령이 끝나더라도 해당 파일에 자동으로 반영되지 않는 경우가 발생할 수 있습니다. 이때는 수동으로 주석을 해제해 줘야 합니다.4. 로케일 파일의 권한 문제
/etc/locale.gen
파일에 대한 읽기/쓰기 권한 문제가 있을 경우,dpkg-reconfigure
명령이 파일을 수정하지 못할 수 있습니다. 파일 권한을 확인하여 충분한 권한이 있는지 확인해야 합니다.위 명령으로 파일의 권한을 확인한 후, 필요하다면 권한을 수정해야 할 수 있습니다.
5. 시스템 버그
가끔씩 시스템에 따라
dpkg-reconfigure
가 로케일 파일을 올바르게 수정하지 않는 버그가 발생할 수 있습니다. 이는 특정 배포판에서 발생하는 문제일 수 있으며, 해당 문제가 보고된 사례가 있으면 패치나 수동 설정이 필요할 수 있습니다.
이와 같은 이유들로 인해,
dpkg-reconfigure locales
명령을 사용하더라도/etc/locale.gen
파일이 자동으로 업데이트되지 않는 경우가 종종 발생할 수 있습니다. 이런 경우 수동으로 파일을 수정하고locale-gen
명령을 실행하여 로케일을 생성하는 것이 해결책이 될 수 있습니다.
-
-
ssh로는 잘 접속됐는데 instance connect 로 접속하려고하니 에러가 떠서.. ㅇ^ㅇ 고치려다가.. 시간이 아까워서 나중에 학교 실습실에서 하기로 했다.- 해결돼서 그냥 지금 마무리해야겠땅.
NAT
-
NAT 는 보통 라우터에서 제공하는 기능이다.
-
NAT를 사용하는 네트워크 내에서 기기들은 사설 ip로 구분되는데, NAT는 외부통신을 위해 기기와 포트 그리고 공인 ip 와 함께 통신할 포트를 매핑해 보관해둔다.
사설ip:포트
-NAT 포트
-
NAT에서의 포트도 실제로 점유되는 포트가 맞다. 하지만 NAT가 자체적으로 동적으로 할당하는, 전송계층**(L4)**의 포트번호임.