def create_forward_port(
self, port, forward_address, forward_port, address=None,
remote=False, **connect_kwargs):
"""
Warning: This can be a security issue for long running tunnels because
bind_address does not work like ssh, instead it default to binding
on every interface. SSH defaults to binding to localhost.
"""
args = self._get_args(**connect_kwargs)
remote_flag = "R" if remote else "L"
args.append("-{0}{1}:{2}:{3}:{4}".format(
remote_flag, address or "0.0.0.0", port,
forward_address, forward_port))
hostname = connect_kwargs.get("hostname", self.hostname)
address = address or hostname if remote else "localhost"
proc = subprocess.Popen(args, preexec_fn=os.setsid)
return PortForward(proc.pid, address=address, port=port)
评论列表
文章目录