SQL Server 2016 cannot connect remotely - remote-access

I am using the "test.udl" to test the connect.
When I use the IP which is from the router, it can connection test is succeeded.
Then I try to use the real IP for testing connect, it got fall.
The router has set as below:
Archer C2>forwarding>Virtual Server:
Service Port=1433,1434,49172
Ip address=192.168.0.100(Permanent)
And I have closed the firewall in windows.
The Sql server configuration manager setting:
TCP IP Properties>IP Address>
IP1:
Active:yes
Enabled:yes
IP Address:119.246.x.x
TCP Dynamic ports:0
TCP port:null(unset)
IP2:
Active:yes
Enabled:yes
IP Address:192.168.0.100
TCP Dynamic ports:0
TCP port:null(unset)
test.udl test information:
Fail test
server name:119.246.x.x\server
Use Windows NT integrated security
result:
Test connection failed because of an error in initializing provider.
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
succeed test
server name:192.168.0.100server
Use Windows NT integrated security
result:
Test connection succeeded.
Does anyone know where i got wrong?

It is a bug.
SYMPTOMS
When you try to connect to a clustered Microsoft SQL Server 2005 or Microsoft SQL Server 2000 named instance by using the "servername\instancename" syntax, you receive the following error message:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
You may receive this error message when the following conditions are true:
SQL Server 2005 or SQL Server 2000 is installed on a cluster.
You are connecting to a SQL Server named instance by using TCP/IP sockets.
IPSec policy is enabled on the client domain.
IPSec policy is not enabled on the server domain.
CAUSE
This problem occurs during the discovery phase of the connection. The IPSec policy on the client drops packets from the server when the source IP changes.
WORKAROUND
To work around this problem, you have to hardcode the TCP port or the Named Pipe of the SQL Server named instance. To do this, use a connection string that is similar to one of the following:
[oledb]
; Hardcoded TCP OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security >Info=False;User ID=clientID;Data Source=tcp:TcpIpAddress,port
[oledb]
; Hardcoded Named Pipes OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security >Info=False;User ID=clientID;Data Source=np:\ServerName\pipe\MSSQL$InstanceName\sql\query
*Source taken from https://support.microsoft.com/en-us/kb/888228
Hope it helped

I have solved it. It may cause of the default port is not 1433.
I checked the log file viewer(SQL server Management studio>SQL Server Agent>Error logs>current(archive is also work))
only tick on the sql server check box
find "server is listening on[ 127.0.0.1 xxxx].
In my case it is 9662/9663
I add them all in my router and succeed to connect.
Thank you all above.

Related

Failed to connect to MFQ:1433 nodejs

In my local machine there is no connection issue, but after I pushed to the server and run the node js project it throws an exception:
Failed to connect to MFQ:1433 - Could not connect (sequence)
Node js connected to the sql server throw the mssql module
I have started sql server browser
In my local machine it working perfectly
First & foremost please verify that correct PORT is utilized on the connection string (ensure you have one) if you already do then the fix would the below SQL Server Browser service is not running on the port 1433 on the database server & must be reachable. (Normally the default PORT is 1433)
Open the SQL Server Configuration Manager.
In SQL Server Network Configuration select Protocols for [yourServerInstance]. In the right-hand pane, make sure that TCP/IP is Enabled.
Open the 1433 port in your firewall.
In the SQL Server Configuration Manager,right-click TCP/IP and select Properties.
Select the IP Addresses tab and make sure the TCP Port for IP1 is 1433. - If you are using a named instance, create an extra rule in your firewall with the port 1434

How to fix oracle TNS - Connection timed out error when connecting to database remotely?

I am trying to connect to oracle database hosted on Linux server remotely from my windows machine and getting error ORA-12170: TNS: Connect Timeout. I've already checked the following:
listener.ora configuration and it's status.
tnsnames.ora naming parameters.
firewall is listening on the IP and the default port 1521
If there is no firewall between the client and the target database then you should not normally need to adjust the timeout. You can try adjusting the sqlnet parameters mentioned in the error message: *Action: If the error occurred because of a slow network or system,
// reconfigure one or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT,
// SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values.
- -
However, I think you should ask your network team to trace your connection attempt especially if after increasing the timeout you still get the error. The full Oracle version in use and the platforms (client and target) may be important.

Unable to Add Azure DB Firewall Rule to Allow Build Server to Run Tests

We use a Visual Studio Online-hosted build server to automate our build process. As part of this I'm looking into adding unit and integration tests into this process.
These tests require access to our SQL Azure DBs (2 of them, both on the same server), which in turn requires access through the DB server's firewall.
I have a PowerShell script which uses New-AzureRmSqlServerFirewallRule to add IP addresses to the DB server, and these firewall rules are successfully showing up in the Azure portal.
Specifically, the script adds firewall rules for:
All IPv4 addresses* on the build server (as returned by Get-NetIPAddress)
Build server's external IP address (as returned by https://api.ipify.org)
In conjunction, it appears that the pre-defined AllowAllAzureIPs and AllowAllWindowsAzureIps rules are automatically added.
However, the tests subsequently fail with the exception:
System.Data.SqlClient.SqlException:
System.Data.SqlClient.SqlException: A network-related or
instance-specific error occurred while establishing a connection to
SQL Server. The server was not found or was not accessible. Verify
that the instance name is correct and that SQL Server is configured to
allow remote connections. (provider: Named Pipes Provider, error: 40 -
Could not open a connection to SQL Server)
I'm unsure why the build server is unable to reach the DB server - could it be that the host of the test processes is using yet a different IP address?
Update
As has been pointed out, the exception message mentions "Named Pipes Provider" which suggests that the DB connection is using a named pipe instead of an IP/TCP connection. To test this I changed the local app.config to contain an unknown/random/inaccessible IP and ran the tests locally (they otherwise run successfully locally): I received exactly the same exception message mentioning "Named Pipes Provider". Perhaps at some level the ReliableSqlConnection class resolves to a named pipe but my point is that I can induce this very same exception by changing to an unknown or inaccessible IP address in my DB connection string.
Furthermore, the DB connection string starts with tcp: which, as per this blog post, explicitly tells the connection to use TCP/IP and not named pipes.
I have also modified the firewall rule to permit all IP addresses (0.0.0.0 to 255.255.255.255) but the same exception is still thrown. This suggests that the SQL Azure firewall rule is not the cause of the 'blockage'.
My suspicion therefore turns to network access being blocked (though a whitelist is probably present to permit the build server to reach the code repository). I added a very simple PowerShell script to the start of the build process:
Test-Connection "172.217.18.100" #resolves to www.google.com
This results in
Testing connection to computer '172.217.18.100' failed: Error due to lack of resources
Have the build servers disabled ping/ICMP or is all outgoing traffic blocked?
* The script only considers IPv4 addresses because I haven't had any success in passing IPv6 addresses to New-AzureRmSqlServerFirewallRule.
We finally solved the issue. The problem had nothing to do with Firewalls. The issue was that the app.config files in our unit test didn't go through the transformation step that our web.config files did. So all the settings were from our local development and therefore wrong.
More about this here:
Connect to external services inside Visual Studio Online build/test task
What connection string are you using? Your error seems to indicate that this is not truly a firewall issue, but rather a connection is being attempted to a server that doesn't exist.
My * incorrect * hypothesis right now is that your connection string contains only the server name, without .database.windows.net suffix which causes the client driver to look for server on local network. The error presented appears to not be a firewall related issue.
( Edited to reflect author feedback. )
If you're connecting over TCP, then why is your error message saying Named Pipes?
[...]
(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
I'd look into this paradox first.
The firewall test is very simple, allow 0.0.0.0 to 255.255.255.255 or 0.0.0.0/0 and re-test. My money is on the same error message.

Unable to establish the Cassandra - Generic JDBC connection in AQUA Data Studio

Your server is not listening or accepting connections on 127.0.0.1:9042. Verify host and port information is correct
VM: 127.0.0.1:9042
JDBC URL :jdbc:cassandra://127.0.0.1:9042/quantum_cassandra
Driver:cdata.jdbc.cassandra.CassandraDriver
Appreciate your help on this.
This error message in Aqua Data Studio indicates that your host/port is incorrect, or your server is not listening on that port, or a firewall is blocking network access to it.
You just need to make sure your server is running correctly and no firewall is blocking your connection. Note that IP address 127.0.0.1 is a local loopback and is only accessible on the same machine and not remotely.

Only port 80 works for websites

I hosting a dedicated Server(win2008 Standart). IIS is installed. There are several Websites bound to different ports(eg SharepointServicesCentralAdministration to 17012).
Every website work well if is bound to port 80 but if i change the port i get timeout (connection via internet) - local it works well.
(Hardware and software firewall are down.)
For some additional test a c# TcpClient Instance is listening on port 12345. If i try connect via internet i get exception:
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond xxx.xxx.xxx.xxx:12345 - seems the same issue...
Any idea what could be wrong?
You most likely have port 80 forwarded to your machine from your internet bordering router/firewall.
You would need to have the other ports forwarded as well in your router/firewall for these other ports to work.
This also assumes you already opened the local firewall ports as you mentioned above, which is also required!
Is it possible for other computers in the local subnet to connect? Probably only the local subnet is allowed. The setting needed for ip-restrictions has to be installed: http://www.hrzdata.com/node/46

Resources