Nix 값이 '부호 있는 정수의 속성 집합' 유형이 아닙니다.

Nix 값이 '부호 있는 정수의 속성 집합' 유형이 아닙니다.

다음을 설정하려고 합니다.

  networking.firewall.allowedTCPPortRanges = [ 80 81 5900];

하지만 다음과 같은 오류가 발생합니다.

오류: 옵션 값 networking.firewall.allowedTCPPortRanges.[definition 1-entry 1]' in /etc/nixos/configuration.nix'는 '부호 있는 정수의 속성 집합' 유형이 아닙니다.

여기에 정의된 것 같습니다.https://github.com/NixOS/nixos/blob/5f444a4d8d49a497bcfabe2544bda264c845653e/modules/services/networking/firewall.nix#L118처럼:

networking.firewall.allowedTCPPorts = mkOption {
  default = [];
  example = [ 22 80 ];
  type = types.listOf types.int;
  description =
    ''
      List of TCP ports on which incoming connections are
      accepted.
    '';
};

내가 사용하고 있는 구문에 어떤 문제가 있나요?

답변1

다음에는 유사한 이름의 두 가지 속성이 있습니다 networking.firewall.

  • 허용된 TCP 포트
  • 허용되는 TCP 포트 범위

전자는 목록이므로 값이 [80 81 5900]허용됩니다. 그러나 후자는 다음과 같이 정의된 집합입니다.

allowedTCPPortRanges = mkOption {
  type = types.listOf (types.attrsOf types.int);
  default = [ ];
  example = [ { from = 8999; to = 9003; } ];
  description =
    ''
      A range of TCP ports on which incoming connections are
      accepted.
    '';
};

관련 정보