![systemd-nspawn 컨테이너에서 여러 포트를 매핑하는 방법은 무엇입니까?](https://linux55.com/image/208310/systemd-nspawn%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EB%A7%A4%ED%95%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
답변1
-p는 하나의 명령으로 여러 번 추가하는 것을 지원하므로 루프를 사용하여 포트를 하나씩 추가했습니다.
이게 내 코드야
set port_range $_flag_port
if echo $port_range | grep -qs -
set -e port_mapping_tcp
set -e port_mapping_udp
set -e port_mapping
set port_counter 0
for port_arrary in (seq (echo $port_range | awk -F "-" '{print $1}') (echo $port_range | awk -F "-" '{print $2}'))
set port_counter (math $port_counter+1)
set port_mapping_tcp[$port_counter] "-ptcp:$port_arrary"
set port_mapping_udp[$port_counter] "-pudp:$port_arrary"
end
else
if echo $port_range | grep -qs ,
set -e port_mapping_tcp
set -e port_mapping_udp
set -e port_mapping
set port_counter 0
for port_arrary in (echo $port_range | string split ,)
set port_counter (math $port_counter+1)
set port_mapping_tcp[$port_counter] "-ptcp:$port_arrary"
set port_mapping_udp[$port_counter] "-pudp:$port_arrary"
end
else
set port_mapping_tcp "-ptcp:$_flag_port"
set port_mapping_udp "-pudp:$_flag_port"
end
end
sudo systemd-nspawn --resolv-conf=off $port_mapping_tcp $port_mapping_udp -bnq -D $container