netcat를 사용한 Discourse 설정에서 잘못된 옵션 조합?

CentOS 7에서 표준 설치 절차인 discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub 를 사용하고 있지만 다음과 같은 문제가 있습니다:

포트 80 및 443의 네트워크 연결성은 다음 방법으로 nc를 사용하여 테스트됩니다:

    echo -e "HTTP/1.1 200 OK\n\n $VERIFY" | nc -w 4 -l -p $PORT >/dev/null 2>&1 &
    if curl --proto =http -s $HOST:$PORT --connect-timeout 3 | grep $VERIFY >/dev/null 2>&1; then
:

하지만 nc가 다음과 같이 실패합니다:

nc: cannot use -p and -l

이로 인해 설정 스크립트는 해당 포트가 사용 불가능하다고 보고합니다.

man nc에는 다음과 같이 나와 있습니다:

     -l      원격 호스트로 연결을 시작하는 대신 수신 연결을 대기합니다. -psxz 옵션 중 어느 것과도 함께 사용할 수 없습니다. 또한 -w 옵션으로 지정된 모든 타임아웃은 무시됩니다.

nc 버전 문제일 수 있습니다. NC 에는 두 옵션 사이에 충돌이 있다는 내용이 없기 때문입니다. 제 netcat은 다음과 같이 사용할 때만 수신(listen)할 수 있습니다:

nc -w 4 -l <IP 주소> <포트 번호>

netcat이 자신의 버전 번호를 알려주도록 하는 방법을 찾지 못하겠습니다 :confused:

음, 그러니까… netcat-traditional과 netcat-openbsd가 있고, CentOS에는 전자가 기본으로 포함되어 있지만 discourse-setup에는 후자가 필요합니다. CentOS에 netcat-openbsd를 설치하는 방법을 찾아보고 있는데, 생각보다 쉽지 않아 보이네요…

줄여서 말하면:
yum remove netcat
yum install nmap-ncat

그것이 우분투가 추천되는 이유 중 하나이기도 합니다.

하지만 netcat이 두 종류나 있다는 건 얼마나 귀찮은 일인가요? 그리고 기본 netcat은 특히 사용하기가 어려운 것 같습니다.

그걸 알아내느라 고생 많으셨네요!