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

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

Related

How to open HTTPS port in Google cloud?

Hello today configured vps on Google Cloud and put Vesta control panel, but the problem is not open one https that is, and the ip server and the domain itself does not open on https. Set up Google Cloud firewall and opened ports 80,443 but https does not open the site itself is not the ip of the server. Checked through online services port 443 is closed but settings of the server and a firewall of Google and ip tables say that port 443 is opened (checked by several services port 443) and in the browser through ip of the server and the domain on https do not open. Please tell me how to open port 443?
Same with ports 8443,8080.
I am not able to comment but here are some steps that might help to isolate the issue:
Check to see if the port is open or closed or filtered using nmap
nmap [ip_address]
Firewall rules are defined at the network level and therefore make sure that you follow this document while creating the firewall rules to allow incoming traffic on TCP port 80 and 443 (same for other ports). In this document in step 11, choose " specified protocols and ports" and enter tcp: 80, tcp: 443.
As you previously stated, you need to make sure there is no firewall running inside the VM blocking those connections.
You also need to verify if the application running on your vps is listening on port 443. To check this, try with this command.
sudo netstat -ntlp | grep LISTEN
In the output, if you don't see the application beside port number, check if your vps is rightly configured to ports for your application.
I was having the same issue with NGinx. And Found the root cause finally to be the Firewall (GCP VM Firewall) having a lower priority for the rule. ie: I had 65534 (which is super low priority) for the "Ingress 443" rule. Which did block the traffic coming into the SSL. Instead when I set this rule to 1, traffic started flowing and issue sorted.
What finally helped me was https://cloud.google.com/vpc/docs/using-firewalls
Thanks #Md Zubayer for the tip.

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.

Application bound to port but server not listening - WebSphere Application Server - Commerce App

So we have a staging server running commerce that's binding to port 8000:
[12/23/15 15:21:44:043 EST] 0000000f webcontainer I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web Module WorkspaceAdministration has been bound to VH_comm_Tools[xxx.xxx.com:8000,*:8000]
The issue here is I can't connect to that port and netstat -an | grep 8000 shows it's not listening. telnet or curling the locahost does not return anything. Iptables is also disabled.
I have another environment that's working without adding a port in the HTTP Transport chain although i did attempt that but without any luck.
Can someone chime in please??
Thank you!
WAS ND 8.5.5.1
The message you included is referring to the "host aliases" defined in the "virtual host" the .war is associated with. These are accessible via the WAS admin console.
Separately, your web container is associated with a TCP transport listening on one or more ports. These are accessible in the WAS admin console in a slightly different area.
The server will let you create host aliases that do not match any listening port, because they could be logical ports used by frontend proxy/http servers.
I'd suggest you do one of two things:
figure out your listening ports, then add them as host aliases to the virtual host your app is associated with
or
find a virtual host with host aliases that match your listening ports and associate your web module with that virtual host instead.

How do I check whether an open port is TCP or HTTP?

Specifically, I have a Windows server (Windows 7), but the netstat -an command only shows whether ports are TCP or UDP. I thought these were the only kinds of ports, but node.js seems to distinguish between HTTP ports and TCP ports (example at bottom of linked page). I'm currently using node.js in a program that will run on my server, and it opens HTTP ports by default. These appear as TCP ports under netstat -an.
Is there a command line trick for distinguishing whether an open port on this server is HTTP or TCP? I make requests to my Information Technology office about ports that I need on this server, and they need to know whether these ports will be TCP, UDP, etc.
If necessary to use a remote client, I have a Mac that can do the job.
HTTP is an application protocol. Its definition presumes an underlying and reliable transport layer protocol. The transmission Control Protocol is commonly used. However HTTP can use unreliable protocols too (example SSDP).
Now to answer to your question:
netstat -lt : List TCP Listening Ports
netstat -lu : List UDP Listening Ports
If you want to know wether a TCP Port is running HTTP or not, you can check the standard port on HTTP (grep :80). The standard HTTP port is 80. The standard HTTPS port is 443.
All HTTP traffic is transmitted over TCP Ports. I think what may be causing some confusion is that the first node.js example uses the http module and the second example uses the net module.
The http module is built on top of the net module (which handles the TCP layer underlying HTTP).
Refer to: nodejs - net or http module
EDIT:
Only one process can bind to a port. If you're having difficulties connecting, shut down any other applications that may be using the same port, such as your Java Hello World server. Run netstat -an to make sure you don't see the port listed that you're trying to listen on in you node.js TCP server (port 1337) in the example. If nothing is listening on the port, fire up your node.js TCP server and run netstat -an again to make sure it's actually listening on the intended port.
Another suggestion - temporarily turn off the software firewall then use the telnet client on the local server to attempt to connect to the port using the command telnet 127.0.0.1 1337 (replace 1337 with your port) from the command prompt. This will eliminate any network devices such as firewalls between the client (telnet in this case) and the server. If the screen goes blank, you've connected. If you get the message Could not open connection to the host, on port then it's still not listening on the TCP Port. If you can connect locally from Telnet but you cannot connect remotely then there is something blocking your connection.

How to rewrite the TCP destination port during the TCP connection on Windows?

I have a client which is intended to connect to a server. For the client, the remote TCP port number is fixed(i.e. 102). I can NOT change it(while I can change the remote IP address). However, the TCP Port number the server is listening on is fixed as well(i.e. 1024) and I can NOT change it too. These two port numbers are different. I want to make the client connect to the server smoothly.
At the first, I had a idea that I setup a proxy listening on localhost:102 and the client connect to 127.0.0.1:102. Then this proxy redirect these TCP traffic to the real address RemoteServerIP:1024. But I found on my windows, there was already a process which is listening on 0.0.0.0:102 and I can NOT change its listening port. So this idea can NOT work.
Thank you very much.
if you cannot do it on the same windows machine running client, why not try to do it on another (linux maybe) machine?

Resources