cURL +代理noob在这里,很难过.我无法通过代理从远程安全服务器检索网页.显然,远程开发人员已正确设置了所有内容,以便以下命令行指令正常工作并返回我们要查找的内容:
curl -k --socks5-hostname localhost:xxxx https://hostname/
Run Code Online (Sandbox Code Playgroud)
但是,以下PHP不会回显请求的网页.相反,它回应错误'无法解析主机名':
$proxy = 'localhost:xxxx';
$url = 'https://hostname/';
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
$curl_scraped_page = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error)
echo $error;
elseif ($curl_scraped_page)
echo $curl_scraped_page;
Run Code Online (Sandbox Code Playgroud)
如果$ url更改为公共页面(例如Google),请求就会成功,并且每个人都很满意.
如果连接发生任何变化,则连接需要SSH隧道.隧道是开放的并且正常运行,正如命令行请求成功所证明的那样.
这里有什么明显的错过吗?
我有一个运行Redis服务器的远程Linux机器,在开放端口上进行监听.我想加密流量,但Redis不支持SSH.建议的解决方案是使用SSH隧道,但我对此没有多少经验.
我尝试将RedisClient(ServiceStack.Redis)对象连接到通过SSH(SSH.NET)隧道转发到远程linux盒的本地端口:
static void Main(string[] args)
{
using (var client = new SshClient("example.org", "sshuser", "sshpassword"))
{
client.Connect();
var port = new ForwardedPortLocal("localhost", 1234, " example.org ", 1234);
client.AddForwardedPort(port);
port.Exception += (sender, e) => Console.WriteLine(e.Exception.ToString());
port.Start();
using (var redisClient = new RedisClient("localhost", 1234, "redispassword"))
{
var values = redisClient.As<string>();
const string dansFord = "Dan's Ford Mustang";
values.Store(dansFord);
Console.WriteLine("Redis has " + values.GetAll().Count + " entries");
values.GetAll().ToList().ForEach(Console.WriteLine);
}
Console.ReadLine();
port.Stop();
client.Disconnect();
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为RedisClient无法连接到localhost上的不存在的服务器,并且转发似乎不起作用.我的问题是:
我无法应用任何操作系统级别的调整,因此解决方案应该是纯达4.5.1的.NET.这里发布的解决方案需要一个商业图书馆,而我必须依赖免费的.
谢谢!
可以使用 postgres_fdw 通过 ssh 隧道连接吗?
该数据库只能从数据库服务器访问,我需要从另一台远程服务器加入。数据库服务器使用 SSH 密钥登录。
如果可以的话请问如何做?
我在amazone ec2上运行postgresql服务器.我通过ssh隧道连接pgAdmin3,直接在我的mac的pgAdmin3中配置.我可以查询并查看完整的架构,没有问题.
如果我尝试备份数据库(来自pgAdmin3 GUI),那么我得到(即使连接实际上是打开并正常工作)以下异常:
/Applications/pgAdmin3.app/Contents/SharedSupport/pg_dump --host localhost --port 5432 --username "MY_USERNAME" --role "MY_ROLE" --no-password --format custom --encoding UTF8 --verbose --file "/Users/XXX/filename" "DATABASENAME"
pg_dump: [archiver (db)] connection to database "DATABASENAME" failed: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
Process ended with Exitcode 1.Run Code Online (Sandbox Code Playgroud)
知道为什么后台的pg_dump无法通过ssh隧道连接?
我需要通过跳转盒(Azure VM)从本地计算机连接到 Azure SQL DB。我使用以下命令设置端口转发:
ssh -fN -L 41433:my-db.database.windows.net:1433 me@jump-box
Run Code Online (Sandbox Code Playgroud)
我可以确认隧道已设置,因为在详细模式下我看到了消息
Local connections to LOCALHOST:41433 forwarded to remote address my-db.database.windows.net:1433
Run Code Online (Sandbox Code Playgroud)
现在,当我跑
sqlcmd -S 127.0.0.1,41433 -U username -P password -d db
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : [Microsoft][ODBC Driver 13 for SQL Server]
[SQL Server]Cannot open server "127.0.0.1" requested by the login. The login failed..
Run Code Online (Sandbox Code Playgroud)
我已经确保/etc/ssh/sshd_config有线条GatewayPorts yes和AllowTcpForwarding yes
有人可以帮我弄清楚我做错了什么吗?
我正在尝试将在 local_machine (macOS) 上运行的 spyder 连接到在计算服务器(集群的计算节点)上运行的远程内核。计算节点不能通过互联网直接访问,我只能通过 login_server 访问集群。
我尝试以下操作:
python -m spyder_kernels.console
要将另一个客户端连接到此内核,请使用:--existing kernel-20351.json
我将此 json 文件复制到 local_machine 上的适当位置。它包含文本:“shell_port”:46540,“iopub_port”:39268,“stdin_port”:40704,“control_port”:42637,“hb_port”:46887,
ssh -L46540:compute_server:46540 -L39268:compute_server:39268 -L40704:compute_server:40704 -L42637:compute_server:42637 -L46887:compute_server:46887 me@login
连接挂起。如果我在 login_server 上启动 spyder 内核并省略第 2 步,那么它工作正常,但我不能在 login_server 上进行大量计算,我必须在计算服务器上工作。
有任何想法吗?
Application silently dies when it opens a lot of SFTP connections. I use all sorts of process event handlers and the only one triggered is process.on('exit',...
I'm using an npm package for SFTP ssh2-sftp-client which is using ssh2 package underneath.
const Client = require('ssh2-sftp-client')
const inspect = require('util').inspect
const sftpClient = new Client();
sftpClient.on('error', (err) => {
console.log('SFTP client emitted ERROR: ' + inspect(err))
})
sftpClient.on('end', () => {
console.log('SFTP client emitted END')
}) …Run Code Online (Sandbox Code Playgroud) 使用 DBeaver,我尝试连接到安装了 MariaDB 数据库的 AWS ec2 实例。
我创建了一个新连接:
连接上的 SSH 隧道:
连接一开始效果很好。几分钟不活动后,如果我打开表,连接就会卡住,我需要无效/重新连接才能获取数据。这个过程有时是由 DBeaver 在 15 秒未获取任何内容后完成的,但有时即使我等待 2 分钟,它也会继续运行,但什么也没有获取。
我的配置中是否缺少某些内容?或者服务器上的一些配置也许..我不知道..
你有遇到过这个问题吗?
现在我正在创建一个 ssh 隧道,这样我就可以连接到我的远程数据库,但由于某种原因连接仍然拒绝......我的脚本:
try {
$host = 'remote host';
$sshuser = 'ssh user';
$sshpass = 'ssh password';
$dbuser = 'db user';
$dbpass = 'db user';
$dbname = 'db name';
shell_exec("ssh -p$sshpass ssh -o StrictHostKeyChecking=no -f -L 3307:127.0.0.1:3306 $sshuser@$host");
$dbh = new PDO('mysql:host=127.0.0.1;port=3307;dbname=' .$dbname. '', $dbuser, $dbpass);
$sth = $dbh->prepare("SELECT * from table");
$sth->execute();
$result = $sth->fetchAll();
print_r ($result);
shell_exec("kill $(ssh-pid)");
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
Run Code Online (Sandbox Code Playgroud)
结果我得到:
Error!: SQLSTATE[HY000] …Run Code Online (Sandbox Code Playgroud) 我尝试根据说明在 Java 程序中使用 SSH 与 PythonAnywhere 中的 MySQL 库建立连接: https:
//help.pythonanywhere.com/pages/AccessingMySQLFromOutsidePythonAnywhere
不幸的是,我每次都会遇到这个错误,而且我已经没有想法了:
com.jcraft.jsch.JSchException:拒绝主机密钥:ssh.pythonanywhere.com
public static void main(String[] args) {
Tunnel tunnel = new Tunnel();
try {
tunnel.go();
} catch (Exception e) {
e.printStackTrace();
}
}
public void go() throws Exception {
String host = "ssh.pythonanywhere.com";
String user = "username";
String password = "password";
int port = 22;
int tunnelLocalPort = 9080;
String tunnelRemoteHost = "username.mysql.pythonanywhere-services.com";
int tunnelRemotePort = 3306;
JSch jsch= new JSch();
Session session = jsch.getSession(user,host,port);
localUserInfo lui = …Run Code Online (Sandbox Code Playgroud) ssh-tunnel ×10
ssh ×4
php ×2
.net ×1
amazon-ec2 ×1
asynchronous ×1
azure ×1
backup ×1
c# ×1
connection ×1
curl ×1
database ×1
dbeaver ×1
java ×1
javascript ×1
jsch ×1
mariadb ×1
node.js ×1
pdo ×1
pgadmin ×1
postgres-fdw ×1
postgresql ×1
proxy ×1
redis ×1
sftp ×1
socks ×1
spyder ×1
sqlcmd ×1