다양한 항구를 방류


20

방랑 1.2.1 이상을 사용하여 다양한 포트를 전달하는 방법이 있습니까? 다음을 사용하여 여러 포트를 개별적으로 전달할 수 있음을 알고 있습니다

config.vm.forward_port 80, 4567

아니면 대답은 단순히 그런 일을하기 위해 방랑자를 사용하지 않습니까?



정확히. 한 번에 하나씩 열지 않고 포트 범위를 지정할 수 있는지 알고 싶었습니다. 아마도 저자에게 직접 연락 할 것입니다.
Acorn

4
Vagrantfile은 Ruby 스크립트 일 뿐이므로 원하는 모든 포트에 대해 config.vm.forward_port를 실행하는 for 루프를 작성할 수 있습니다. 루비에 능통하지 않으므로 코드를 실제로 도울 수 없습니다.
Lasar

답변:


27

누구나 Vagrantfile에서 루프를 수행하는 방법에 대한 예가 필요한 경우 다음과 같습니다.

for i in 64000..65535
    config.vm.network :forwarded_port, guest: i, host: i
end

위의 루프는 64000과 65535 사이의 모든 포트를 게스트의 동일한 포트로 전달합니다 (64000과 65535는 포함).


2
내 컴퓨터에서 방랑자는 1000 포트를 매핑하는 데 약간 길었습니다. 실제로 너무 많은 매핑 된 포트가 필요하지 않으면 50 개의 포트를 매핑해야합니다.
Antoine

@Antoine 예 나는 그것이 매우 느리다는 것을 알았습니다. 나는 보통 개발 박스에 10 ~ 20을 사용합니다.
ddelrio1986

명령 줄 제한이 시작되면 오류가 발생합니다.
Alexander T

@AlexanderT 몇 개의 포트를 전달하려고합니까?
ddelrio1986

@ ddelrio1986는 약 천입니다.
Alexander T

2

위의 'for'예제는 포괄적 인 범위를 수행하기에 적합합니다. 특정 포트 세트를 전달하려면 Ruby .each 연산자를 사용해야합니다.

변수는 기본 Vagrant.configure 루프 내부 또는 외부로 이동할 수 있습니다.

UDP_PORTS_LIST={
  "5000" => 5000, # Some service
}

TCP_PORTS_LIST={
  "5900" => 5900, # VNC
}

루프는 매핑하려는 VM의 Vagrant.configure 블록 내부로 이동해야합니다 (단일 Vagrant 파일에 여러 VM을 가질 수 있음을 기억하십시오).

UDP_PORTS_LIST.each do |guest, host|
  config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "udp"
end
TCP_PORTS_LIST.each do |guest, host|
  config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "tcp"
end
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.