Connecting to MSMQ from remote machine - amazon-ec2

I'm trying to connect to MSMQ running on an AWS EC2 instance using the following connection :
MessageQueue = new MessageQueue("FormatName:Direct=TCP:xx.xxx.xx.xxx\\private$\\TestQueue");
I've enabled all the appropriate traffic with the AWS security group and windows firewall. The error I'm getting is "Remote computer is not available."
Is MSMQ meant to work between windows machines which are not in the same domain, and without having to use HTTP ?
I'm including this netstat trace because it looks like MSMQ service is not listening on the public interface, but not sure how to fix this if it is the issue.
C:\Users\Administrator>netstat -abno | findstr 1801
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING 4184
TCP [::]:1801 [::]:0 LISTENING 4184

Related

com.microsoft.azure .servicebus.primitives.ServiceBusException

I can't connect to my queue on azure account using java code. It seems that the problem is the network. I can to connect with my private network but not with the company network.
I have this message error:
Exception in thread "main" http://com.microsoft.azure .servicebus.primitives.ServiceBusException: Error{condition=amqp:connection:framing-error, description='connection aborted', info=null}.
Any hints?
It seems that the problem is the network. I can to connect with my private network but not with the company network.
Yes, you are right. I also find the simlar issue on the github. It seems that your company firewall restriction which blocks all traffic on ports 5671 and 5672. We could get more information from AMQP 1.0 in Azure Service Bus and Event Hubs protocol guide.
Azure Service Bus requires the use of TLS at all times. It supports connections over TCP port 5671, whereby the TCP connection is first overlaid with TLS before entering the AMQP protocol handshake, and also supports connections over TCP port 5672 whereby the server immediately offers a mandatory upgrade of connection to TLS using the AMQP-prescribed model. The AMQP WebSockets binding creates a tunnel over TCP port 443 that is then equivalent to AMQP 5671 connections.
If possible, you could ask permission to open 2 ports in your company firewall.

Make WebSphere listen on IPv4

I have a WebSphere application server 8, where I have deployed an enterprise application. Now I want to make that web GUI of that application reachable. So I set up a port (9080), added a web container transport chain, added a virtual host for port 9080, and added that virtual host to my deployed application. However, it is not reachable.
Digging through WebSphere's log, I found this message:
TCPC0001I: TCP Channel TCP_6 is listening on host * (IPv6) port 9080.
So apparently, the channel listens on IPv6, not on IPv4. I verified this with netstat, which indeed shows that the server's process only listens on IPv6. How do I make the channel listen on IPv4 instead? I already tried setting java.net.preferIPv4Stack=true in the server's JVM, but that didn't change anything.
Interestingly, Websphere's console is available via IPv4, but I cannot figure out what part of it is configured differently so that it works, while my setup does not.
On many operating systems IPv6 sockets on the wildcard address (* or ::/0) can accept both IPv4 and IPv6 connections. On for example Mac OS netstat would show such sockets as i.e. tcp46 to show they are dual-stack. Other operating systems, including Linux, just show them as tcp6 even if they also accept IPv4 connections.
So it is probably listening on IPv4 just fine, it's just a confusing way of showing it to the sysadmin.

Can I bind windows http.sys to another port than 80

We are using the http port 80 to run a SAP Portal response to an URL.
We made a restart to the server and the Operating System uses now port 80:
C:\Users>netstat -o -n -a | findstr 0.0.0.0:80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 1540
UDP 0.0.0.0:8082 *:* 1540
The process PID 4 is the operating system and using the ProcessExplorer application it figures out that is the Http.sys that is running now on port 80.
It was stopped and deactivated the http.sys but this has dependencies, and one is the World Wide Web Publishing Services (IIS) that we need.
Can I bind the http.sys port to be another port so that the dependencies that are related with this service could run without problems?
Thanks
Sílvia
Http.sys does not open ports on its own. It does on at the request of an application. Http.sys can be accessed by any application.
Reconfigure the application. There is no way to configure Http.sys.
Generally requests leaving are bound to a random port whereas the services the server you make requests to are bound to a specific port
Give your OS a second IP and bind http.sys to one IP and SAP Web Application Server to another.
netsh http add iplisten ipaddress=::1

Cannot connect to TCP Socket Listening on user PC (Static IP)

I am using Boost asio in Visual C++. I am trying to connect to a static IP which listens TCP on port 1222. unfortunately i can only connect with Lan and cannot connect from another Lan to the TCP listening PC(203.143..).
It connects perfectly with the EC2 server. Is it something to do with firewall. but when i run the app it ask for the user to allow firewall for the specific port. I can post my code but i guess it's not something to with the code.
Usually a firewall on the server side (the PC you are trying to connect to) have to be configured to allow incoming connections.
Firewall on your side should be OK, it usually allows any type of outgoing connections.
I don't know what you meant by "the app ask for the user to allow firewall for the specific port" (clarify).

Cannot reach socket server on AWS EC2

I am trying to run a socket server on an Amazon Web Services EC2 instance. The socket is able to run just fine on it's own, and telnetting locally on the instance can connect, but trying to telnet to the socket from the outside is failing. I have gone into the security groups to ensure the ports I am using are open for both TCP and UDP (though the socket server has been configured for TCP). Is there something else I am missing?
The server might be listening on the loopback interface or ipv6 by default. You can check that by running netstat --listen -p which will show you which program listens on which address/port. How to make the program listen on the external ipv4 interface depends on the program/programming language.

Resources