Skip to content
이 페이지는 AI의 도움으로 작성 및 번역되었습니다. 부정확한 내용이 있으면 개선에 참여해 주세요. GitHub에서 편집

IRC

채널, DM, 다양한 인증 방법을 지원하며 TLS를 통해 PRX를 Internet Relay Chat (IRC) 서버에 연결합니다.

사전 요구 사항

  • 연결할 IRC 서버 (예: Libera.Chat, OFTC 또는 사설 서버)
  • 봇의 닉네임
  • TLS가 활성화된 IRC 서버 (포트 6697이 표준)

빠른 설정

1. 서버 선택 및 닉네임 등록 (선택)

Libera.Chat 같은 공개 네트워크에서는 봇의 닉네임을 NickServ에 등록할 수 있습니다:

/msg NickServ REGISTER <password> <email>

2. 설정

toml
[channels_config.irc]
server = "irc.libera.chat"
port = 6697
nickname = "prx-bot"
channels = ["#my-channel"]
allowed_users = ["mynick", "*"]

NickServ 인증을 사용하는 경우:

toml
[channels_config.irc]
server = "irc.libera.chat"
port = 6697
nickname = "prx-bot"
channels = ["#my-channel", "#another-channel"]
allowed_users = ["*"]
nickserv_password = "your-nickserv-password"

3. 확인

bash
prx channel doctor irc

설정 레퍼런스

필드타입기본값설명
serverString필수IRC 서버 호스트명 (예: "irc.libera.chat")
portu166697IRC 서버 포트 (TLS의 경우 6697)
nicknameString필수IRC 네트워크에서의 봇 닉네임
usernameStringnicknameIRC 사용자명 (미설정 시 닉네임이 기본값)
channels[String][]연결 시 참여할 IRC 채널 (예: ["#channel1", "#channel2"])
allowed_users[String][]허용된 닉네임 (대소문자 구분 없음). 비어 있으면 = 모두 거부. "*" = 모두 허용
server_passwordStringnull서버 비밀번호 (ZNC 같은 바운서용)
nickserv_passwordStringnull닉네임 인증을 위한 NickServ IDENTIFY 비밀번호
sasl_passwordStringnullIRCv3 인증을 위한 SASL PLAIN 비밀번호
verify_tlsbooltrue서버의 TLS 인증서를 검증합니다

기능

  • TLS 암호화 -- 모든 연결이 보안을 위해 TLS를 사용합니다
  • 다중 인증 방법 -- 서버 비밀번호, NickServ IDENTIFY, SASL PLAIN (IRCv3)을 지원합니다
  • 멀티 채널 지원 -- 여러 채널에 동시에 참여하여 응답합니다
  • 채널 및 DM 지원 -- 채널 PRIVMSG와 다이렉트 메시지를 모두 처리합니다
  • 일반 텍스트 출력 -- 응답이 자동으로 IRC에 맞게 조정됩니다 (마크다운, 코드 펜스 없음)
  • 스마트 메시지 분할 -- 긴 메시지가 IRC의 줄 길이 제한을 준수하며 분할됩니다
  • 연결 유지 -- 서버 PING 메시지에 응답하고 끊어진 연결을 감지합니다 (5분 읽기 타임아웃)
  • 단조 메시지 ID -- 버스트 트래픽에서 고유한 메시지 순서를 보장합니다

제한 사항

  • IRC는 일반 텍스트만 지원합니다; 마크다운, HTML, 리치 포맷팅은 지원되지 않습니다
  • 메시지는 IRC 줄 길이 제한 (일반적으로 프로토콜 오버헤드 포함 512 바이트)의 적용을 받습니다
  • 내장 미디어 또는 파일 공유 기능이 없습니다
  • 서버가 타임아웃 내에 PING 응답을 받지 못하면 연결이 끊어질 수 있습니다
  • 일부 IRC 네트워크는 봇의 속도를 제한할 수 있는 flood 방지 조치가 있습니다
  • 닉네임 변경 및 네트워크 분리 후 재연결은 처리되지만 잠시 중단될 수 있습니다

문제 해결

IRC 서버에 연결할 수 없음

  • server 호스트명과 port가 올바른지 확인합니다
  • 포트 6697 (TLS)이 방화벽에 의해 차단되지 않는지 확인합니다
  • 자체 서명 인증서를 사용하는 경우 verify_tls = false를 설정합니다

봇이 채널에 참여하지만 응답하지 않음

  • 발신자의 닉네임이 allowed_users에 있는지 확인합니다 (대소문자 구분 없음)
  • 테스트를 위해 allowed_users = ["*"]를 설정하여 모든 사용자를 허용합니다
  • 봇에 채널에서 발언 권한이 있는지 확인합니다 (음소거 또는 차단되지 않음)

NickServ 인증 실패

  • nickserv_password가 올바른지 확인합니다
  • 봇 닉네임이 식별하기 전에 NickServ에 등록되어 있어야 합니다
  • 일부 네트워크는 NickServ 대신 SASL 인증을 요구합니다; 이 경우 sasl_password를 사용하세요

Released under the Apache-2.0 License.