使用 vagrant box 时是否需要为 livereload 添加转发端口?
Do I need to add a forwarded port for livereload when using a vagrant box?
我正在尝试将 livereload 浏览器扩展与使用 puphpet 配置的 vagrant box 一起使用。
我认为端口 35729 已被阻止,因为我无法从主机 OS (OSX) telnet 到该端口。嘉宾 OS 是 Ubuntu 14.04.
添加 IPTables 规则是否足够,或者我是否需要添加新的转发端口并重新配置盒子?
iptables -L
target prot opt source destination
ACCEPT icmp -- anywhere anywhere /* 000 accept all icmp */
ACCEPT all -- anywhere anywhere /* 001 accept all to lo interface */
ACCEPT all -- anywhere anywhere /* 002 accept related established rules */ state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere multiport ports 1025,socks /* 100 tcp/1025, 1080 */
ACCEPT tcp -- anywhere anywhere multiport ports ssh /* 100 tcp/22 */
ACCEPT tcp -- anywhere anywhere multiport ports https /* 100 tcp/443 */
ACCEPT tcp -- anywhere anywhere multiport ports http /* 100 tcp/80 */
DROP all -- anywhere anywhere /* 999 drop all */
我尝试添加以下内容:
sudo iptables -A OUTPUT -p tcp -m tcp --dport 35729 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --sport 35729 -j ACCEPT
但这并没有解决问题。我还尝试将其添加到 config.yml 和 运行 vagrant provision
:
forwarded_port:
l1J8zgpT2xBX:
host: '35729'
guest: '35729'
在 forwarded_port
下添加端口就足够了,因为我已经将代码写入 PuPHPet 以将这些端口添加到 OS 防火墙:
if has_key($vm_values, 'vm')
and has_key($vm_values['vm'], 'network')
and has_key($vm_values['vm']['network'], 'forwarded_port')
{
create_resources( iptables_port, $vm_values['vm']['network']['forwarded_port'] )
}
define iptables_port (
$host,
$guest,
) {
if ! defined(Firewall["100 tcp/${guest}"]) {
firewall { "100 tcp/${guest}":
port => $guest,
proto => tcp,
action => 'accept',
}
}
}
但是,您必须 运行 $ vagrant reload
,而不是 $ vagrant provision
。重新加载会影响盒子本身——内存、cpus、共享端口等。配置将影响您设置的任何配置脚本(在本例中为 Puppet)。
我正在尝试将 livereload 浏览器扩展与使用 puphpet 配置的 vagrant box 一起使用。
我认为端口 35729 已被阻止,因为我无法从主机 OS (OSX) telnet 到该端口。嘉宾 OS 是 Ubuntu 14.04.
添加 IPTables 规则是否足够,或者我是否需要添加新的转发端口并重新配置盒子?
iptables -L
target prot opt source destination
ACCEPT icmp -- anywhere anywhere /* 000 accept all icmp */
ACCEPT all -- anywhere anywhere /* 001 accept all to lo interface */
ACCEPT all -- anywhere anywhere /* 002 accept related established rules */ state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere multiport ports 1025,socks /* 100 tcp/1025, 1080 */
ACCEPT tcp -- anywhere anywhere multiport ports ssh /* 100 tcp/22 */
ACCEPT tcp -- anywhere anywhere multiport ports https /* 100 tcp/443 */
ACCEPT tcp -- anywhere anywhere multiport ports http /* 100 tcp/80 */
DROP all -- anywhere anywhere /* 999 drop all */
我尝试添加以下内容:
sudo iptables -A OUTPUT -p tcp -m tcp --dport 35729 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --sport 35729 -j ACCEPT
但这并没有解决问题。我还尝试将其添加到 config.yml 和 运行 vagrant provision
:
forwarded_port:
l1J8zgpT2xBX:
host: '35729'
guest: '35729'
在 forwarded_port
下添加端口就足够了,因为我已经将代码写入 PuPHPet 以将这些端口添加到 OS 防火墙:
if has_key($vm_values, 'vm')
and has_key($vm_values['vm'], 'network')
and has_key($vm_values['vm']['network'], 'forwarded_port')
{
create_resources( iptables_port, $vm_values['vm']['network']['forwarded_port'] )
}
define iptables_port (
$host,
$guest,
) {
if ! defined(Firewall["100 tcp/${guest}"]) {
firewall { "100 tcp/${guest}":
port => $guest,
proto => tcp,
action => 'accept',
}
}
}
但是,您必须 运行 $ vagrant reload
,而不是 $ vagrant provision
。重新加载会影响盒子本身——内存、cpus、共享端口等。配置将影响您设置的任何配置脚本(在本例中为 Puppet)。