尝试创建一个socks (-D) ssh 隧道 - Linux 盒到 Linux 盒(都是 centos):
sshd 在远程端运行正常。
从本地机器我们做/看到这个:
ssh -D 1080 user@8.8.8.8.
user@8.8.8.8's password:
bind: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)
(其中 8.8.8.8 实际上是我服务器的 IP,'user' 是我的真实用户名)
我在这个终端窗口中登录到远程端。我可以验证本地端口在此命令之前未被使用,然后在命令之后被 ssh 进程使用,通过:
netstat -lnp | grep 1080
Run Code Online (Sandbox Code Playgroud)
因此,与大多数带有此错误的 googled 响应不同,问题似乎不是环回接口分配。如果我尝试将此隧道与邮件客户端一起使用,本地端会允许尝试(没有“代理失败”错误),但不会返回任何数据/回复。
在远程端,我的 sshd_config 中确实有“PermitTunnel yes”(尽管“yes”应该是默认值,无论如何)。
想法或线索?
这是相关的调试输出
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
....
debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:1080 forwarded to remote address socks:0
debug1: Local forwarding …Run Code Online (Sandbox Code Playgroud) 我们有两个主要环境有问题:
开发和质量保证
每个环境有两台服务器:
要连接应用服务器,必须先连接跳转盒,然后SSH连接应用服务器。
防火墙有一些规则:
我们的问题
我们有很多的内容(670 GB) DEVELOPMENT APPLICATION SERVER,我们需要得到这个的QA APPLICATION SERVER。
将此数据复制到跳转框不是一种选择,因为它们缺少所需的空间量。
我做了一些研究,并了解到我们可以通过这些服务器建立一系列隧道,以便我们可以通过隧道将数据直接从一个应用程序服务器传输到另一个应用程序服务器。但是,我们无法从应用服务器连接到跳转盒的问题。
我们有什么选择吗?这将是一个绝望的局面,时间至关重要。我们没有时间下载数据并重新上传。在服务器上通过网络进行复制会很快,因为它是千兆连接。
我正在尝试将我的服务器用作 ssh 的“代理”。但是,设置隧道
ssh -D localhost:8000 user@myserver
Run Code Online (Sandbox Code Playgroud)
不起作用。
我使用 ssh 和 putty 在各种机器上对此进行了测试 - 它连接得很好,但是当我相应地设置浏览器设置时,我只会收到错误“连接已重置”。我尝试使用wireshark监控流量,但我什至没有看到一些隧道流量。我明确设置AllowTcpForwarding为“是”,但我仍然无法使用隧道。
在详细模式下运行 ssh 时,我没有收到任何错误,但是
debug1: Connection to port 8000 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
debug1: channel 3: free: dynamic-tcpip, nchannels 4
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想从我的家庭服务器接收系统电子邮件。所以我试图通过我的公共服务器配置 postfix 来做到这一点。我的公共服务器有一个固定的 IP,而我的家庭服务器在一个私有网络中,由于我的路由器的主机名被包含在主机名中,导致一个完整的主机名“homeserver.blablabla_crappyrouter”。
我的家庭服务器通过具有固定 IP 的 OpenVPN 隧道连接到我的公共服务器,其中我的家庭服务器是客户端。从我的家庭服务器到我的公共服务器(反之亦然),有一个固定的 IP,因此它们可以通过固定地址毫无问题地相互访问。这是一条隧道,可以让我从任何地方访问我的家庭服务器,而不会出现安全问题。
我的公共服务器上的 postfix 配置包括以下内容:
smtpd_recipient_restrictions = reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_destination,
reject_rbl_client sbl.spamhaus.org,
permit
smtpd_helo_restrictions = reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname
smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net
Run Code Online (Sandbox Code Playgroud)
在我的家庭服务器上,我添加了 OpenVPN 的公共服务器的 IP 使用
relayhost = [<public server IP through OpenVPN>]
Run Code Online (Sandbox Code Playgroud)
现在这个配置不发送电子邮件并给我错误:
Helo 命令被拒绝:找不到主机
我对此进行了研究,发现 postfix 会搜索主机名,但显然由于主机名混乱而找不到它。
我的问题:如何告诉我的公共服务器的 postfix 盲目地允许来自我的家庭服务器的所有内容?
谢谢。
更新:
我确实在 main.cf 中设置了选项
smtpd_helo_required = no
Run Code Online (Sandbox Code Playgroud)
但这没有帮助。以下是我发送测试电子邮件后的 /var/log/mail.log 条目:
Sep 2 15:53:53 HomeServer sm-mta[6677]: t82Drr6w006677: from=sys@mydomain.com, size=69, class=0, nrcpts=1, msgid=<201509021353.t82Drr6w006677@HomeServer.blablabla_crappyRouter>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 2 …Run Code Online (Sandbox Code Playgroud) 我有一个Linux服务器一有5个公共IP地址块,8.8.8.122/29。当前,8.8.8.122分配给eth0,并8.8.8.123分配给eth0:1。
我在远程位置有另一台 Linux 机器B,位于 NAT 后面。我想在两者之间建立一个隧道,以便B可以使用 IP 地址8.8.8.123作为其主要 IP 地址。
OpenVPN 可能是答案,但我无法弄清楚如何设置(topology subnet或者topology p2p可能是合适的。或者我应该使用以太网桥接?)。安全和加密在这一点上不是一个大问题,所以 GRE 也可以——机器B将来自一个已知的 IP 地址,并且可以基于它进行身份验证。
我怎样才能做到这一点?任何人都可以建议在这种情况下可以使用的 OpenVPN 配置或其他方法吗?理想情况下,它还能够处理多个客户端(例如,与其他机器共享所有四个备用 IP),而不会让这些客户端使用他们无权使用的 IP。
我目前正在使用 vagrant(虚拟机)测试一些配置,以通过 SSH 隧道将 2 个服务器(当前的 VM)连接在一起。目标是将我的 Web 应用程序安全地连接到数据库。
问题是,当我通过 SSH 隧道查询数据库时,查询速度比不使用隧道时慢 5 到 80 倍。这是我正在使用的命令:
ssh -N -L 3306:127.0.0.1:3306 sshuser@192.168.10.10
Run Code Online (Sandbox Code Playgroud)
从我读到的内容来看,开销不应该那么多,所以我尝试了一些方法来加快传输速度。我发现如果我删除该-N选项,查询的速度与我不使用隧道的速度一样快,但我以“sshuser”的身份登录终端(并&在命令末尾添加一个奇怪的事物...)。
所以知道了,我有几个问题:
当我删除该-N选项时,我的数据是否仍然加密?
如果是这样,我该怎么做才能保持性能而不在控制台中以“sshuser”的身份登录?
我可以使用它们来加快加密速度吗?
预先感谢您的光。
我可以通过 ssh 连接到远程服务器并毫无问题地登录。
我正在尝试通过 ssh 隧道连接到远程 mysql 数据库并遇到问题。我已经成功创建了隧道(通过 telnet 验证)。当我尝试使用以下命令登录时:
mysql --host=127.0.0.1 -P 3302 -u fakeuser -p
Run Code Online (Sandbox Code Playgroud)
我得到
Access denied for user 'fakeuser'@'192.168.100.93'
Run Code Online (Sandbox Code Playgroud)
问题是@192.168.100.93。我相信我需要它是 fakeuser@localhost。既然我是通过 SSH 隧道连接的,为什么不将它设置为 localhost?我如何强制它到本地主机?它从哪里得到 192.168.100.93?
请注意,我无法更改 MySQL 服务器上的任何设置。
谢谢您的帮助!
我正在尝试创建一个到HE.net 的隧道,以在我的(云)服务器上获取 IPv6 地址。
当我创建隧道并将其放入时/etc/network/interfaces:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <my IPv6 address>
netmask 64
endpoint 66.220.7.82
local <my IPv4 address>
ttl 255
gateway <my gateway>
Run Code Online (Sandbox Code Playgroud)
然后ifup he-ipv6,我得到:
error: /etc/network/interfaces: line5: iface he-ipv6: unsupported address method 'v4tunnel'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
操作系统是Ubuntu 18.04.3.
(我试图搜索这个错误,但似乎没有人遇到过这个错误。但我已经在不同提供商的两台单独的机器上进行了尝试,结果是相同的。)
更新:添加图片以了解详细信息:

更新2:添加netplan图片:

结论:问题是由 引起的ifupdown2。
问题:在建立IPsec VPN 隧道后,所有流量都被路由到远程端点,而我只需要路由发往该内部网络的数据包,并且仍然能够在我的本地机器上访问互联网。目前,当我启用相应的 VPN 连接时 - 所有连接都会中断,这意味着无法通过我的 LAN 到达这台机器或通过它访问互联网(远程端有限制以进行进一步的 WAN 转发)。因此,在这种情况下,只有 VPN 有效。
拓扑:http : //i.imgur.com/9HEru.png
我在基于Debian的发行版上使用OpenSwan,也在NAT后面(启用遍历)。
以下是ipsec.conf的详细信息:
2.0版
配置设置
plutodebug="none"
plutoopts="--perpeerlog"
plutoopts="--interface=wlan2"
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.196.0.0/17,%v4:! 192.168.1.0/24
oe=off
protostack=netkey康恩ž
authby =秘密
密钥有效期= 1H
PFS =是
自动=添加
phase2alg = AES128-SHA1; modp1024
keyingtries = 3
ikelifetime = 8H
类型=隧道
左= 192.168.1.76
leftsubnet = 0.0.0.0 / 0
leftprotoport = 0/0
右= YYYY
rightsubnet=0.0.0.0/0
rightprotoport=0/0
以下是ifconfig 的 …
我正在尝试通过配置将 DNS 推送到带有 OpenVPN 服务器的客户端:
push "dhcp-option DNS 192.168.x.x"
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我真正需要的是在 VPN 连接期间我不想使用我的主要解析器,客户端应该只使用服务器提供的 DNS。可以通过 push redirect-gateway来完成,但我不想通过 VPN 将来自客户端的所有连接建立隧道,只通过特定网络。
有没有可能以某种方式做到这一点?
Linux 客户端可以使用脚本,在 Windows 上我不确定